<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>War-Story on Frank&#39;s Blog</title>
    <link>https://frankblogs.com/tags/war-story/</link>
    <description>Recent content in War-Story on Frank&#39;s Blog</description>
    <generator>Hugo -- 0.150.0</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 14 Sep 2025 19:58:08 +0800</lastBuildDate>
    <atom:link href="https://frankblogs.com/tags/war-story/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Why I Killed My About Page</title>
      <link>https://frankblogs.com/posts/why-i-killed-my-about-page/</link>
      <pubDate>Sun, 14 Sep 2025 19:58:08 +0800</pubDate>
      <guid>https://frankblogs.com/posts/why-i-killed-my-about-page/</guid>
      <description>&lt;p&gt;This is my first post. It was supposed to be my second.&lt;/p&gt;
&lt;p&gt;My very first post should have been the &amp;ldquo;About&amp;rdquo; page. It’s the standard, simple, “Hello, this is who I am” page that every blog is supposed to have.&lt;/p&gt;
&lt;p&gt;But I deleted it. I killed it before this blog ever saw the light of day.&lt;/p&gt;
&lt;p&gt;This isn’t a great start, but it was a necessary one.&lt;/p&gt;
&lt;h2 id=&#34;this-was-supposed-to-be-easy&#34;&gt;This Was Supposed to Be Easy&lt;/h2&gt;
&lt;p&gt;My goal was simple: set up a personal blog using the &amp;ldquo;golden stack&amp;rdquo; of modern static sites: Hugo (as the engine), the &lt;code&gt;hugo-paper&lt;/code&gt; theme (for the clean look), Git, and Cloudflare Pages (for fast, free, global hosting).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This is my first post. It was supposed to be my second.</p>
<p>My very first post should have been the &ldquo;About&rdquo; page. It’s the standard, simple, “Hello, this is who I am” page that every blog is supposed to have.</p>
<p>But I deleted it. I killed it before this blog ever saw the light of day.</p>
<p>This isn’t a great start, but it was a necessary one.</p>
<h2 id="this-was-supposed-to-be-easy">This Was Supposed to Be Easy</h2>
<p>My goal was simple: set up a personal blog using the &ldquo;golden stack&rdquo; of modern static sites: Hugo (as the engine), the <code>hugo-paper</code> theme (for the clean look), Git, and Cloudflare Pages (for fast, free, global hosting).</p>
<p>And to be honest, it <em>worked</em>. Mostly.</p>
<p>Except for one, single, impossibly stubborn page.</p>
<h2 id="the-ghost-in-the-machine">The Ghost in the Machine</h2>
<p>After I pushed my code, a bizarre problem appeared. My homepage loaded perfectly. The <code>/posts/</code> list page loaded perfectly. They had the correct styles (CSS) and the correct English site title (&ldquo;Frank&rsquo;s Blog&rdquo;).</p>
<p>But the <code>/about/</code> page was a ghost.</p>
<p>It rendered as raw, unstyled HTML. Worse, every single link on that one page (the CSS file, the link back to the homepage, the footer links) was broken, pointing to an impossible address: <code>http://localhost:1313/</code>.</p>
<p>To make it even weirder, the footer—which was supposed to pull my site&rsquo;s English title—instead showed an old, non-existent <strong>Chinese</strong> title: &ldquo;Frank 的博客&rdquo;.</p>
<p>My site was having a split-personality crisis. The homepage knew it was an English site deployed to production, while the About page thought it was a Chinese site running on a local test server.</p>
<h2 id="the-debugging-rabbit-hole">The Debugging Rabbit Hole</h2>
<p>So began an epic debugging saga. An AI assistant and I went down every conceivable rabbit hole to fix this. We tried:</p>
<ol>
<li><strong>Fixing the Config File?</strong> We triple-checked <code>hugo.toml</code>. We fixed deprecated keys (<code>paginate</code>), corrected TOML syntax, and scoured the file for invisible whitespace characters. <strong>The problem remained.</strong></li>
<li><strong>A &ldquo;Ghost&rdquo; Config?</strong> We hypothesized a &ldquo;ghost&rdquo; multilingual file (<code>languages.toml</code>) left over from the theme&rsquo;s example site was forcing the build into a broken state. We hunted it down and deleted the entire <code>config</code> directory. <strong>The problem remained.</strong></li>
<li><strong>Build Environment Mismatch?</strong> The most maddening clue was that <code>hugo server -D</code> on my local Mac worked <strong>perfectly</strong>. The About page was beautiful. This suggested a conflict with Cloudflare&rsquo;s build environment. So, we set the <code>HUGO_VERSION</code> environment variable in Cloudflare to match my exact local version. <strong>The problem remained.</strong></li>
<li><strong>A Build Command Override?</strong> We thought maybe Cloudflare was ignoring the <code>baseURL</code> in the config. So we manually forced it in the build command: <code>hugo --baseURL https://frankblogs.com/</code>. <strong>The problem remained.</strong></li>
<li><strong>A File Structure Problem?</strong> Our final theory. Maybe the theme&rsquo;s &ldquo;single page&rdquo; template was buggy, but its &ldquo;list page&rdquo; template (used by the working homepage) was fine. We changed the file structure from <code>content/about.md</code> to <code>content/about/_index.md</code> to &ldquo;trick&rdquo; Hugo into using the working template. <strong>And still, it failed.</strong></li>
</ol>
<h2 id="the-verdict">The Verdict</h2>
<p>After trying every logical configuration fix, the conclusion was inescapable.</p>
<p>The problem wasn&rsquo;t my config. It wasn&rsquo;t Cloudflare. It was a deep, unfixable bug in the <code>hugo-paper</code> theme itself—a flaw in its single-page template that, for some reason, fails catastrophically <em>only</em> when built on the Cloudflare Pages environment, defaulting all its paths to <code>localhost</code>. It was invisible locally, but fatal in production.</p>
<p>So I had a choice: spend the next week learning the Go Template language to debug a third-party theme I didn&rsquo;t write&hellip; or just delete the broken feature.</p>
<p>I chose deletion.</p>
<p>This blog is going to be a record of building things that work. The first lesson is knowing when to cut your losses and pick the pragmatic path.</p>
<p>So, hello, world. There is no &ldquo;About&rdquo; page here. There is only this &ldquo;Posts&rdquo; page.</p>
<p>Because I know for a fact: <strong>this part works.</strong></p>
]]></content:encoded>
    </item>
  </channel>
</rss>
