<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hugo on Idan Goldman</title><link>https://idan.goldman.work/notebook/tags/hugo/</link><description>Recent content in Hugo on Idan Goldman</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 28 Jun 2026 12:58:00 +0300</lastBuildDate><atom:link href="https://idan.goldman.work/notebook/tags/hugo/index.xml" rel="self" type="application/rss+xml"/><item><title>King Content is Dead, Long Live King Content</title><link>https://idan.goldman.work/notebook/king-content-is-dead-long-live-king-content/</link><pubDate>Sun, 28 Jun 2026 12:58:00 +0300</pubDate><guid>https://idan.goldman.work/notebook/king-content-is-dead-long-live-king-content/</guid><description>&lt;img src="https://idan.goldman.work/notebook/king-content-is-dead-long-live-king-content/post-image-by-gemini.png" alt="Featured image of post King Content is Dead, Long Live King Content" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;King Content lived a life of theory, hypothesis, and analysis, and died to live a life of thesis. Long live King Content II.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;Ideas are perfect until they meet reality and adjustments must be made as Plan B or C (OK, more like Plan K-L-M-N-O-P). The exact same thing happened to me while writing &lt;em&gt;&lt;a class="link" href="https://idan.goldman.work/notebook/content-is-king-a-thesis-on-personal-website-architecture/" &gt;Content is King&lt;/a&gt;&lt;/em&gt;. While the theory made perfect sense on paper, in practice it required real-world adjustments to become a thesis. In this field note, I will review what actually worked to keep my focus solely on content while moving the plumbing code aside.&lt;/p&gt;
&lt;h2 id="plumbing-code"&gt;Plumbing Code
&lt;/h2&gt;&lt;p&gt;The most significant architectural shift was replacing &lt;em&gt;Quartz&lt;/em&gt; with &lt;em&gt;Hugo&lt;/em&gt; and the &lt;em&gt;Stack&lt;/em&gt; theme. For my specific use case, Hugo is simply a better-matched &lt;em&gt;SSG&lt;/em&gt;, allowing me to minimize additions and extensions to the codebase.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;em&gt;Write &amp;gt; Preview &amp;gt; Publish &amp;gt; Read&lt;/em&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;The second major adjustment to the plumbing code was the forgotten step of &lt;em&gt;previewing&lt;/em&gt; the website before publishing. I needed a way to review the look, feel, and theme of the website before publishing it live, rather than debugging it after the fact. To achieve this, I used &lt;em&gt;Process Compose&lt;/em&gt; as a lightweight alternative to &lt;em&gt;Docker Compose&lt;/em&gt;, reusing my existing scripts while keeping &lt;em&gt;BASH&lt;/em&gt; scripting as the good old glue holding everything together.&lt;/p&gt;
&lt;p&gt;For an expand version of tools used to glue the website togather, you can check out the &lt;a class="link" href="https://github.com/idangoldman/web#credit-where-due" target="_blank" rel="noopener"
 &gt;README.md&lt;/a&gt; on the public &lt;em&gt;GitHub&lt;/em&gt; repository mirror.&lt;/p&gt;
&lt;h2 id="structure"&gt;Structure
&lt;/h2&gt;&lt;p&gt;On the structural side, the biggest change involved decluttering the notebook folder. I split a single, flat list of files into 3 sub-folders:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;archived&lt;/code&gt;: Content from previous website iterations that I still want to keep.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;drafts&lt;/code&gt;: Ideas and active writings, which are excluded from the public mirror repository on GitHub, I want to keep an element of surprise — BOO!&lt;/li&gt;
&lt;li&gt;&lt;code&gt;published&lt;/code&gt;: Finalized writings live on the current website.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All other changes were minor cleanups of unused assets and content or small migrations to better-suited place for them.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Content vs. Plumbing Code Ratio: &lt;code&gt;2:1&lt;/code&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&amp;hellip;and instead of boring you with a Git repository tree code block, here is the breakdown of how the repository&amp;rsquo;s files are distributed:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Asset&lt;/th&gt;
 &lt;th&gt;%&lt;/th&gt;
 &lt;th&gt;Files&lt;/th&gt;
 &lt;th&gt;%&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Content&lt;/td&gt;
 &lt;td&gt;66.39%&lt;/td&gt;
 &lt;td&gt;Markdown&lt;/td&gt;
 &lt;td&gt;42.62%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;JPG&lt;/td&gt;
 &lt;td&gt;14.75%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;PNG&lt;/td&gt;
 &lt;td&gt;8.20%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;PDF&lt;/td&gt;
 &lt;td&gt;0.82%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Code&lt;/td&gt;
 &lt;td&gt;33.61%&lt;/td&gt;
 &lt;td&gt;HTML&lt;/td&gt;
 &lt;td&gt;7.38%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;SVG&lt;/td&gt;
 &lt;td&gt;8.20%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;YAML&lt;/td&gt;
 &lt;td&gt;7.38%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;TOML&lt;/td&gt;
 &lt;td&gt;5.74%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;Shell&lt;/td&gt;
 &lt;td&gt;2.46%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;SCSS&lt;/td&gt;
 &lt;td&gt;1.64%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;JS&lt;/td&gt;
 &lt;td&gt;0.82%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="workflows"&gt;Workflows
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart LR
 Entry1([Saved Content]) -. triggers .-&gt; R1
 R5 --&gt; Exit1([Saved Version Tag])
 Entry2([Saved Version Tag]) -. triggers .-&gt; P1
 P3 --&gt; Exit2([idan.goldman.work])

 subgraph LR ReleaseSub [Release Workflow]
 R1[Setup Hugo &amp; Theme] --&gt; R2[Apply Customization]
 R2 --&gt; R3[Build Content]
 R3 --&gt; R4[Generate Website]
 R4 --&gt; R5[Upload to Registry]
 end

 subgraph LR PublishSub [Publish Workflow]
 P1[Download from Registry] --&gt; P2[Unpack]
 P2 --&gt; P3[Upload to Cloudflare Pages]
 end

 class Entry1,Entry2 entry;
 class Exit1,Exit2 exit;
 classDef entry fill:#e8f0ff,stroke:#3366cc;
 classDef exit fill:#eafaf1,stroke:#2ecc71;&lt;/pre&gt;&lt;p&gt;For automation, I broke down one monolithic workflow into two smaller, single-purpose workflows, and added two helper workflows that I didn&amp;rsquo;t know I would need in theory phase:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Release&lt;/code&gt;: Handles structuring the content and plumbing code in the right way for &lt;em&gt;Hugo&lt;/em&gt;, building the static files, and packaging the website into a versioned &lt;em&gt;ZIP&lt;/em&gt; file uploaded to the &lt;em&gt;Forgejo Registry&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Publish&lt;/code&gt;: Pulls the latest versioned package from the &lt;em&gt;Forgejo Registry&lt;/em&gt; and deploys it to &lt;em&gt;Cloudflare Pages&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mirror&lt;/code&gt;: Automatically maintains an up-to-date copy of the repository on &lt;em&gt;GitHub&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Purge Packages&lt;/code&gt;: Automatically cleans-up older website builds from the &lt;em&gt;Forgejo Registry&lt;/em&gt; to prevent disk space bloat and unexpected &amp;ldquo;insufficient funds&amp;rdquo; crush.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="writing-content"&gt;Writing Content
&lt;/h2&gt;&lt;p&gt;The one thing I still hypothesize on is my writing tools.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On &lt;em&gt;macOS&lt;/em&gt;: I use &lt;em&gt;iA Writer&lt;/em&gt; and &lt;em&gt;VS Code&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;On &lt;em&gt;iOS&lt;/em&gt; and &lt;em&gt;iPadOS&lt;/em&gt;: I use &lt;em&gt;Obsidian&lt;/em&gt; with &lt;em&gt;Obsidian Git&lt;/em&gt; plugin or &lt;em&gt;Forgejo’s&lt;/em&gt; native web UI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This isn&amp;rsquo;t perfect setup yet, but gets the job done for me to continue and release-publish content to you the readers.&lt;/p&gt;
&lt;p&gt;Thanks for reading, and see you in the next one.&lt;/p&gt;</description></item></channel></rss>