<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Project Name</title><link>https://pgsty.github.io/oink-starter/</link><description>Recent content on Project Name</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sun, 30 Aug 2026 00:05:16 +0800</lastBuildDate><atom:link href="https://pgsty.github.io/oink-starter/index.xml" rel="self" type="application/rss+xml"/><item><title>Configuration</title><link>https://pgsty.github.io/oink-starter/docs/reference/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/docs/reference/configuration/</guid><description>&lt;p&gt;Replace this small table with the public configuration surface of your project.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Key&lt;/th&gt;&#10; &lt;th scope="col"&gt;Type&lt;/th&gt;&#10; &lt;th scope="col"&gt;Default&lt;/th&gt;&#10; &lt;th scope="col"&gt;Meaning&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;listen&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;string&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;127.0.0.1:8080&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Address used by the local server&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;log_level&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;string&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;info&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Minimum emitted log level&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;read_only&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;boolean&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Disable operations that change state&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="example"&gt;Example&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-3ead4d92-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="yaml" data-td-line-count="3"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-3ead4d92-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0.0.0.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;8080&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;log_level&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;debug&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;read_only&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Document validation and precedence beside the keys, not in a separate hidden guide.&lt;/p&gt;</description></item><item><title>Make Your First Change</title><link>https://pgsty.github.io/oink-starter/docs/tutorial/first-change/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/docs/tutorial/first-change/</guid><description>&lt;p&gt;This sample tutorial models a complete task: prepare, change, verify, and review.&lt;/p&gt;&#10;&lt;h2 id="known-state"&gt;Start from a known state&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-bfab25a0-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="2"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-bfab25a0-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git status --short&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git switch -c docs/first-change&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="change"&gt;Change one thing&#10;&lt;/h2&gt;&#10;&lt;p&gt;Edit a visible string or a small configuration value. Keep the first task narrow enough that its result is obvious.&lt;/p&gt;&#10;&lt;h2 id="verify"&gt;Verify&#10;&lt;/h2&gt;&#10;&lt;p&gt;Run the project’s smallest relevant check, then open the changed surface and inspect it yourself.&lt;/p&gt;</description></item><item><title>Preview the Site</title><link>https://pgsty.github.io/oink-starter/book/01-preview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/book/01-preview/</guid><description>&lt;p&gt;OINK Starter is a Hugo Module site. Git downloads the source, Go resolves the pinned theme, and Hugo builds everything.&lt;/p&gt;&#10;&lt;h2 id="prerequisites"&gt;Prerequisites&#10;&lt;/h2&gt;&#10;&lt;p&gt;Install Git, Go 1.27 or newer, and Hugo Extended 0.165.0 or newer. The word &lt;code&gt;extended&lt;/code&gt; must appear in &lt;code&gt;hugo version&lt;/code&gt;.&lt;/p&gt;&#10;&lt;h2 id="three-commands"&gt;Three commands&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-f259931d-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="3"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-f259931d-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/pgsty/oink-starter.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; oink-starter&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo server&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Open &lt;a href="http://localhost:1313/"&gt;http://localhost:1313/&lt;/a&gt;. Chinese is under &lt;code&gt;/zh/&lt;/code&gt;; French is under &lt;code&gt;/fr/&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Project Overview</title><link>https://pgsty.github.io/oink-starter/docs/introduction/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/docs/introduction/overview/</guid><description>&lt;p&gt;Replace this page with the shortest useful explanation of your project.&lt;/p&gt;&#10;&lt;h2 id="problem"&gt;The problem&#10;&lt;/h2&gt;&#10;&lt;p&gt;Describe the problem in the reader’s language. Avoid implementation details until the reader understands why the project matters.&lt;/p&gt;&#10;&lt;h2 id="outcome"&gt;The outcome&#10;&lt;/h2&gt;&#10;&lt;p&gt;Explain what a successful user can do after adopting the project.&lt;/p&gt;&#10;&lt;div class="td-callout td-callout--tip" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-lightbulb" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Tip&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;A strong overview helps readers decide whether to continue in less than two minutes.&lt;/p&gt;</description></item><item><title>Requirements</title><link>https://pgsty.github.io/oink-starter/docs/get-started/requirements/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/docs/get-started/requirements/</guid><description>&lt;p&gt;Keep prerequisites short, exact, and testable.&lt;/p&gt;&#10;&lt;h2 id="tools"&gt;Tools&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A supported operating system.&lt;/li&gt;&#10;&lt;li&gt;Git for retrieving the source.&lt;/li&gt;&#10;&lt;li&gt;The runtime version required by your project.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="verify"&gt;Verify&#10;&lt;/h2&gt;&#10;&lt;p&gt;Give readers one command per prerequisite:&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-b4c6ca24-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="console" data-td-line-count="2"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-b4c6ca24-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; project --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;project 0.1.0&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Replace the placeholder command with your own before publishing.&lt;/p&gt;</description></item><item><title>Add a Documentation Page</title><link>https://pgsty.github.io/oink-starter/docs/tutorial/add-content/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/docs/tutorial/add-content/</guid><description>&lt;p&gt;In OINK, the content tree is the documentation sidebar. A new Markdown file becomes a new page.&lt;/p&gt;&#10;&lt;h2 id="create"&gt;Create the file&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-4c64125d-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="markdown" data-td-line-count="7"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-4c64125d-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;New capability&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;What the capability does.&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;30&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Explain the capability here.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Save it as &lt;code&gt;content/docs/reference/new-capability.md&lt;/code&gt;.&lt;/p&gt;&#10;&lt;h2 id="translations"&gt;Add translations&#10;&lt;/h2&gt;&#10;&lt;p&gt;Create &lt;code&gt;new-capability.zh.md&lt;/code&gt; and &lt;code&gt;new-capability.fr.md&lt;/code&gt; beside it. Keep explicit heading IDs aligned across languages.&lt;/p&gt;</description></item><item><title>Architecture</title><link>https://pgsty.github.io/oink-starter/docs/introduction/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/docs/introduction/architecture/</guid><description>&lt;p&gt;Document the few components a contributor must understand before making a change.&lt;/p&gt;&#10;&lt;h2 id="system-map"&gt;System map&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Part&lt;/th&gt;&#10; &lt;th scope="col"&gt;Responsibility&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Interface&lt;/td&gt;&#10; &lt;td&gt;Accepts user input and presents results&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Core&lt;/td&gt;&#10; &lt;td&gt;Applies the project’s rules&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Adapters&lt;/td&gt;&#10; &lt;td&gt;Connect external systems&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="boundaries"&gt;Boundaries&#10;&lt;/h2&gt;&#10;&lt;p&gt;Name what the project deliberately does not own. Clear boundaries prevent documentation from promising more than the software provides.&lt;/p&gt;</description></item><item><title>Command Reference</title><link>https://pgsty.github.io/oink-starter/docs/reference/commands/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/docs/reference/commands/</guid><description>&lt;h2 id="start"&gt;&lt;code&gt;project start&lt;/code&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;Starts the local service.&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-82697e73-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="text" data-td-line-count="1"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-82697e73-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;project start [--config FILE] [--listen ADDRESS]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="check"&gt;&lt;code&gt;project check&lt;/code&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;Validates configuration without starting the service. Exit status &lt;code&gt;0&lt;/code&gt; means valid; any non-zero status means the configuration must not be deployed.&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-82697e73-fence-1" data-td-code data-td-code-auto-id&#10; data-td-language="text" data-td-line-count="1"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-82697e73-fence-1-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;project check [--config FILE]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Replace these placeholders with commands copied from your real CLI help output.&lt;/p&gt;</description></item><item><title>Installation</title><link>https://pgsty.github.io/oink-starter/docs/get-started/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/docs/get-started/installation/</guid><description>&lt;p&gt;Show the shortest supported installation path first.&lt;/p&gt;&#10;&lt;h2 id="install"&gt;Install&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-677039e2-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="3"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-677039e2-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/OWNER/PROJECT.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; PROJECT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./project start&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="confirm"&gt;Confirm the result&#10;&lt;/h2&gt;&#10;&lt;p&gt;Tell readers exactly what success looks like: a URL to open, a message to see, or a command whose exit status is zero.&lt;/p&gt;&#10;&lt;div class="td-callout td-callout--important" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Important&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;Replace every uppercase placeholder before publishing your project documentation.&lt;/p&gt;</description></item><item><title>Understand the Structure</title><link>https://pgsty.github.io/oink-starter/book/02-structure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/book/02-structure/</guid><description>&lt;p&gt;The starter keeps each responsibility in one obvious place.&lt;/p&gt;&#10;&lt;h2 id="map"&gt;The map&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-055815d5-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="text" data-td-line-count="6"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-055815d5-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo.yaml site identity, languages, and optional integrations&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;data/home/ one compact landing-page file per language&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;content/blog/ posts, design notes, and releases&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;content/docs/ the four-part documentation tree&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;content/book/ this sequential tutorial&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;.github/workflows/ GitHub Pages and Cloudflare Pages deployment&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="navigation"&gt;Navigation follows content&#10;&lt;/h2&gt;&#10;&lt;p&gt;The &lt;code&gt;menus.main&lt;/code&gt; front matter on each section root creates the top navigation and its dropdowns. The directory tree below Docs and Book creates their sidebars.&lt;/p&gt;</description></item><item><title>Make It Yours</title><link>https://pgsty.github.io/oink-starter/book/03-customize/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/book/03-customize/</guid><description>&lt;p&gt;Most projects need only content changes and two configuration edits.&lt;/p&gt;&#10;&lt;h2 id="identity"&gt;Change identity once&#10;&lt;/h2&gt;&#10;&lt;p&gt;At the top of &lt;code&gt;hugo.yaml&lt;/code&gt;, replace &lt;code&gt;Project Name&lt;/code&gt; and &lt;code&gt;https://example.org/&lt;/code&gt;. The YAML title anchor carries the name into all three languages.&lt;/p&gt;&#10;&lt;p&gt;Replace &lt;code&gt;assets/icons/logo.svg&lt;/code&gt; and &lt;code&gt;static/favicon.svg&lt;/code&gt; only when you have real project artwork.&lt;/p&gt;&#10;&lt;h2 id="home"&gt;Replace the home page&#10;&lt;/h2&gt;&#10;&lt;p&gt;Edit &lt;code&gt;data/home/en.yaml&lt;/code&gt;, &lt;code&gt;zh.yaml&lt;/code&gt;, and &lt;code&gt;fr.yaml&lt;/code&gt;. The &lt;code&gt;sections&lt;/code&gt; list controls order; the named blocks below it provide the copy.&lt;/p&gt;</description></item><item><title>Publish the Site</title><link>https://pgsty.github.io/oink-starter/book/04-deploy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/book/04-deploy/</guid><description>&lt;p&gt;The generated &lt;code&gt;public/&lt;/code&gt; directory is a static site. The repository includes two independent deployment paths.&lt;/p&gt;&#10;&lt;h2 id="github-pages"&gt;GitHub Pages&#10;&lt;/h2&gt;&#10;&lt;p&gt;In repository settings, choose &lt;strong&gt;Pages → Source → GitHub Actions&lt;/strong&gt;. A push to &lt;code&gt;main&lt;/code&gt; runs &lt;code&gt;.github/workflows/github-pages.yaml&lt;/code&gt;; the workflow calculates the correct repository subpath automatically.&lt;/p&gt;&#10;&lt;h2 id="cloudflare-pages"&gt;Cloudflare Pages&#10;&lt;/h2&gt;&#10;&lt;p&gt;Create a Direct Upload Pages project, then add &lt;code&gt;CLOUDFLARE_ACCOUNT_ID&lt;/code&gt; and &lt;code&gt;CLOUDFLARE_API_TOKEN&lt;/code&gt; as repository secrets. Set the repository variable &lt;code&gt;CLOUDFLARE_PAGES_ENABLED&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; for automatic deploys. The project name defaults to the repository name and can be overridden with &lt;code&gt;CLOUDFLARE_PROJECT_NAME&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Welcome to the project blog</title><link>https://pgsty.github.io/oink-starter/blog/post/welcome/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/blog/post/welcome/</guid><description>&lt;p&gt;Use the Post section for news, explanations, and stories that do not belong in the reference documentation.&lt;/p&gt;&#10;&lt;h2 id="what-to-publish"&gt;What to publish here&#10;&lt;/h2&gt;&#10;&lt;p&gt;Write for readers who want context: why the project exists, what the team learned, and what comes next.&lt;/p&gt;&#10;&lt;h2 id="replace-this-page"&gt;Replace this page&#10;&lt;/h2&gt;&#10;&lt;p&gt;Keep the front matter, change the title and date, then write your first real post below it.&lt;/p&gt;</description></item><item><title>A small content model that can grow</title><link>https://pgsty.github.io/oink-starter/blog/design/content-model/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/blog/design/content-model/</guid><description>&lt;p&gt;This starter gives each kind of writing one obvious home. The separation keeps navigation predictable without locking the project into a large taxonomy.&lt;/p&gt;&#10;&lt;h2 id="three-modes"&gt;Three reading modes&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Blog posts explain change over time.&lt;/li&gt;&#10;&lt;li&gt;Docs answer focused questions.&lt;/li&gt;&#10;&lt;li&gt;The Book teaches an ordered workflow.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="grow-when-needed"&gt;Add structure only when needed&#10;&lt;/h2&gt;&#10;&lt;p&gt;Start with the supplied sections. Add a new branch only when readers need a distinct route through the material.&lt;/p&gt;</description></item><item><title>Project 0.1.0</title><link>https://pgsty.github.io/oink-starter/blog/release/0.1.0/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink-starter/blog/release/0.1.0/</guid><description>&lt;p&gt;Version 0.1.0 establishes the project’s first usable baseline.&lt;/p&gt;&#10;&lt;h2 id="highlights"&gt;Highlights&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A documented installation path.&lt;/li&gt;&#10;&lt;li&gt;A small, stable public surface.&lt;/li&gt;&#10;&lt;li&gt;A clear place to report problems.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="upgrade-notes"&gt;Upgrade notes&#10;&lt;/h2&gt;&#10;&lt;p&gt;This is the first release, so there is no earlier version to migrate.&lt;/p&gt;</description></item></channel></rss>