<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Customization on OINK</title>
    <link>https://oink.pgsty.com/categories/customization/</link>
    <description>Recent content in Customization on OINK</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    
    
    
      <lastBuildDate>Fri, 21 Aug 2026 23:49:07 +0800</lastBuildDate>
    
    
      <atom:link href="https://oink.pgsty.com/categories/customization/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>Configuration</title>
        <link>https://oink.pgsty.com/docs/customize/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/config/</guid>
        <description>&lt;p&gt;This is the single home of site parameters. Every key the theme reads has a row&#xA;in one of the tables below, giving its type, default and a one-line description,&#xA;and linking to the guide that covers it. The guides give pasteable snippets and&#xA;never repeat the definitions. Page-level parameters (front matter) are in&#xA;&lt;a href=&#34;https://oink.pgsty.com/docs/write/frontmatter/&#34;&gt;Page parameters&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The tables are grouped by function, one &lt;code&gt;##&lt;/code&gt; each, and the anchors are&#xA;referenceable — for example &lt;code&gt;/docs/customize/config/#sidebar&lt;/code&gt;. &lt;strong&gt;An empty&#xA;default column means the theme has no default&lt;/strong&gt;: leave the key out and the&#xA;feature is off.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Brand and appearance</title>
        <link>https://oink.pgsty.com/docs/customize/brand/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/brand/</guid>
        <description>&lt;p&gt;This page covers a site&amp;rsquo;s appearance: the name and logo live in &lt;code&gt;hugo.yml&lt;/code&gt;,&#xA;colours and fonts go through SCSS entry points, and page width and footer shape&#xA;are parameters. It assumes the site already builds&#xA;(&lt;a href=&#34;https://oink.pgsty.com/docs/start/&#34;&gt;Quick start&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;There are four things to change: &lt;code&gt;hugo.yml&lt;/code&gt;, the icons under &lt;code&gt;static/&lt;/code&gt;,&#xA;&lt;code&gt;assets/scss/_variables_project.scss&lt;/code&gt;, and&#xA;&lt;code&gt;assets/scss/_styles_project.scss&lt;/code&gt;. &lt;strong&gt;Do not edit files inside the theme&#xA;directory&lt;/strong&gt;: the theme is a Hugo Module, and an upgrade replaces the whole&#xA;directory.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Home and landing pages</title>
        <link>https://oink.pgsty.com/docs/customize/home/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/home/</guid>
        <description>&lt;p&gt;The home page is not a template but a data file: the &lt;code&gt;sections&lt;/code&gt; list in&#xA;&lt;code&gt;data/home/&amp;lt;language&amp;gt;.yaml&lt;/code&gt; decides which sections the page has from top to&#xA;bottom, and each section&amp;rsquo;s content is looked up by name in the same file. An&#xA;ordinary page with &lt;code&gt;layout: landing&lt;/code&gt; uses the same sections.&lt;/p&gt;&#xA;&lt;p&gt;Every section is rendered on the server. Prices, star counts, screenshots,&#xA;avatars and download states all have to exist in the repository before Hugo&#xA;starts; no section fetches data in the browser.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Navigation and menus</title>
        <link>https://oink.pgsty.com/docs/customize/navigation/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/navigation/</guid>
        <description>&lt;p&gt;This page covers the ways a reader moves between pages: the navbar menu, the&#xA;section switcher, breadcrumbs, page actions, previous / next, and the footer.&#xA;The sidebar tree and the outline belong to&#xA;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/layout/&#34;&gt;Layouts and page types&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Navigation has no second information architecture: the navbar comes from Hugo&amp;rsquo;s&#xA;&lt;code&gt;menus.main&lt;/code&gt;, and the sidebar from the shape of &lt;code&gt;content/&lt;/code&gt;. The theme reads no&#xA;parallel navigation tree such as a &lt;code&gt;docs.json&lt;/code&gt; or a &lt;code&gt;navigation.yaml&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Customization</title>
        <link>https://oink.pgsty.com/docs/customize/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/</guid>
        <description>&lt;p&gt;This section covers site-level configuration: the parameters in &lt;code&gt;hugo.yml&lt;/code&gt;, the&#xA;data files under &lt;code&gt;data/&lt;/code&gt;, and the style entry points under &lt;code&gt;assets/&lt;/code&gt;. Writing an&#xA;individual page and its front matter is in &lt;a href=&#34;https://oink.pgsty.com/docs/write/&#34;&gt;Authoring&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-to-change&#34;&gt;Find it by what you want to change&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;What you want to change&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Page&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Site name, logo, favicon&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/brand/#logo&#34;&gt;Brand and appearance&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Colours, light and dark mode, fonts&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/brand/#colors&#34;&gt;Brand and appearance&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;The navbar menu and its dropdowns&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/navigation/#main-menu&#34;&gt;Navigation and menus&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Sidebar width, icon density, outline depth&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/layout/#sidebar&#34;&gt;Layouts and page types&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;The home page and landing pages&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/home/&#34;&gt;Home and landing pages&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Full-text search and its index scope&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/search/&#34;&gt;Search&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;What appears in the command palette&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/panel/&#34;&gt;Command palette&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Keyboard shortcuts&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/keyboard/&#34;&gt;Keyboard navigation&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Adding a language&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/i18n/&#34;&gt;Languages&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Multi-version sites and the archive banner&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/versions/&#34;&gt;Versions&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Tags and categories&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/taxonomy/&#34;&gt;Taxonomies&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Edit this page, last modified, contributors&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/repository/&#34;&gt;Repository links and page info&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Print and whole-chapter export&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/print/&#34;&gt;Print&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;llms.txt&lt;/code&gt; and the per-page &lt;code&gt;.md&lt;/code&gt; output&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/agents/&#34;&gt;AI-agent support&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;A parameter&amp;rsquo;s type and default&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/docs/customize/config/&#34;&gt;Configuration&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Comments, analytics and deployment need an external service; they are in&#xA;&lt;a href=&#34;https://oink.pgsty.com/docs/admin/&#34;&gt;Operations&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Layouts and page types</title>
        <link>https://oink.pgsty.com/docs/customize/layout/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/layout/</guid>
        <description>&lt;p&gt;This page covers a page&amp;rsquo;s skeleton: whether it has a sidebar, how wide that is,&#xA;how deep the outline goes, and whether a section index is a list or cards. Where&#xA;content goes is in &lt;a href=&#34;https://oink.pgsty.com/docs/write/organize/&#34;&gt;Organizing content&lt;/a&gt;; this page is&#xA;only about the shell.&lt;/p&gt;&#xA;&lt;p&gt;The rule is that &lt;strong&gt;the shell follows &lt;code&gt;type&lt;/code&gt;, not the path&lt;/strong&gt;. Documentation can&#xA;live anywhere under &lt;code&gt;content/&lt;/code&gt; as long as it has &lt;code&gt;type: docs&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;shell-types&#34;&gt;Shell types&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;params.ui.shell_types&lt;/code&gt; lists the types that use the reading shell with a&#xA;sidebar:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Search</title>
        <link>https://oink.pgsty.com/docs/customize/search/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/search/</guid>
        <description>&lt;p&gt;OINK&amp;rsquo;s search is local search: Hugo generates one JSON index per language at&#xA;build time, the reader&amp;rsquo;s browser downloads it, and the search runs in the&#xA;browser. No crawler, no account, no CDN, and no network access. The theme leaves&#xA;it off, and one line of configuration turns it on.&lt;/p&gt;&#xA;&lt;p&gt;The entry point to search is the command palette; how to open it and what else&#xA;it holds are in &lt;a href=&#34;https://oink.pgsty.com/docs/customize/panel/&#34;&gt;Command palette&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Command palette</title>
        <link>https://oink.pgsty.com/docs/customize/panel/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/panel/</guid>
        <description>&lt;p&gt;The command palette is the site&amp;rsquo;s one modal entry point: searching pages,&#xA;copying this page&amp;rsquo;s Markdown, switching language, switching version and jumping&#xA;to a site&amp;rsquo;s own links all happen in one dialog. It is assembled together with&#xA;local search: with &lt;code&gt;params.offline_search&lt;/code&gt; off, the palette, the index and Lunr&#xA;all stay out of the page — see &lt;a href=&#34;https://oink.pgsty.com/docs/customize/search/&#34;&gt;Search&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;open&#34;&gt;Opening the palette&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;How to open it&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;What opens&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Click the search box in the navbar or sidebar&lt;/td&gt;&#xA;      &lt;td&gt;Full search mode&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; / &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;K&lt;/kbd&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Full search mode; press again to close&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;kbd&gt;/&lt;/kbd&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Full search mode&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;The backslash key&lt;/td&gt;&#xA;      &lt;td&gt;Command-only mode (equivalent to a prefilled &lt;code&gt;&amp;gt;&lt;/code&gt;)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;kbd&gt;f&lt;/kbd&gt; / &lt;kbd&gt;c&lt;/kbd&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The same two, provided by &lt;a href=&#34;https://oink.pgsty.com/docs/customize/keyboard/&#34;&gt;keyboard navigation&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Typing a query beginning with &lt;code&gt;&amp;gt;&lt;/code&gt; in the box&lt;/td&gt;&#xA;      &lt;td&gt;Command-only mode&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;kbd&gt;/&lt;/kbd&gt;, backslash, &lt;kbd&gt;f&lt;/kbd&gt; and &lt;kbd&gt;c&lt;/kbd&gt; are all bare single keys&#xA;and stand down for typing: while focus is in an input, textarea, select or&#xA;&lt;code&gt;contenteditable&lt;/code&gt;, and while an input method is composing, they type an ordinary&#xA;character. The modified &lt;kbd&gt;⌘&lt;/kbd&gt;/&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;K&lt;/kbd&gt; has no such&#xA;restriction and opens the palette even from inside a text box.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Keyboard navigation</title>
        <link>https://oink.pgsty.com/docs/customize/keyboard/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/keyboard/</guid>
        <description>&lt;p&gt;OINK&amp;rsquo;s interactive pages come with a set of single-key shortcuts: WASD moves&#xA;through the sidebar tree, &lt;span class=&#34;td-kbd-sequence&#34;&gt;&lt;kbd&gt;J&lt;/kbd&gt;&lt;/span&gt; &lt;span class=&#34;td-kbd-sequence&#34;&gt;&lt;kbd&gt;K&lt;/kbd&gt;&lt;/span&gt; jump between headings,&#xA;&lt;span class=&#34;td-kbd-sequence&#34;&gt;&lt;kbd&gt;Q&lt;/kbd&gt;&lt;/span&gt; &lt;span class=&#34;td-kbd-sequence&#34;&gt;&lt;kbd&gt;E&lt;/kbd&gt;&lt;/span&gt; page back and forward, and a few more toggle the&#xA;theme, the language and the command palette. They are on by default, every&#xA;binding stands down for typing, and they can be turned off per site or per page.&lt;/p&gt;&#xA;&lt;p&gt;Keyboard navigation keeps no second copy of any state: expanding and collapsing&#xA;reuses the sidebar&amp;rsquo;s own arrow buttons, section jumps read the right-hand&#xA;outline, and switching language and theme reuse the command palette&amp;rsquo;s actions.&#xA;Keyboard order and mouse order are therefore the same order.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Languages</title>
        <link>https://oink.pgsty.com/docs/customize/i18n/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/i18n/</guid>
        <description>&lt;p&gt;OINK uses Hugo&amp;rsquo;s multilingual model and adds no directory conventions of its&#xA;own: configure a &lt;code&gt;languages&lt;/code&gt; block, and keep a translation beside its original&#xA;in the same directory, distinguished by a filename suffix. What follows covers&#xA;what a single-language site has to change to become bilingual, plus the two&#xA;things bilingual sites get wrong: resource ownership and heading anchors.&lt;/p&gt;&#xA;&lt;h2 id=&#34;enable&#34;&gt;Enabling a second language&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--titled&#34; id=&#34;td-code-b1c1e7d4-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;19&#34; role=&#34;group&#34; aria-labelledby=&#34;td-code-b1c1e7d4-fence-0-title&#34;&gt;&#xA;  &lt;div class=&#34;td-code__header&#34;&gt;&#xA;    &lt;span class=&#34;td-code__filename&#34; id=&#34;td-code-b1c1e7d4-fence-0-title&#34; title=&#34;hugo.yml&#34;&gt;hugo.yml&lt;/span&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-b1c1e7d4-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;defaultContentLanguage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;en&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;languages&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;en&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;English&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;locale&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;en-US&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;OINK&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;params&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;A Hugo theme for engineering docs&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;zh&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;简体中文&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;locale&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;zh-CN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;OINK&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;params&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;为工程而设计的 Hugo 文档主题&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;time_format_default&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;2006年1月2日&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;time_format_blog&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;2006年1月2日&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;That is this site&amp;rsquo;s configuration. What the four fields do:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Versions</title>
        <link>https://oink.pgsty.com/docs/customize/versions/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/versions/</guid>
        <description>&lt;p&gt;When a product has several supported versions, its documentation usually needs&#xA;versions too. The theme provides two things: a version switcher in the navbar,&#xA;and an archive banner on older sites. The deployment layout is the site&amp;rsquo;s&#xA;decision — the theme does no cross-version build, and each version is its own&#xA;Hugo build.&lt;/p&gt;&#xA;&lt;h2 id=&#34;version-menu&#34;&gt;The version switcher&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;List the versions that should appear in the menu under &lt;code&gt;params.versions&lt;/code&gt;. When&#xA;that list is non-empty, a branch-icon menu appears in the navbar&amp;rsquo;s utility area,&#xA;with the same content in an icon-only upward menu in the footer&amp;rsquo;s bottom bar.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Taxonomies</title>
        <link>https://oink.pgsty.com/docs/customize/taxonomy/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/taxonomy/</guid>
        <description>&lt;p&gt;A directory tree gives a page one path; a taxonomy gives it a second. The same&#xA;PostgreSQL backup document sits under an &amp;ldquo;Operations&amp;rdquo; directory and is also&#xA;reachable from a &amp;ldquo;backup&amp;rdquo; tag page. Enabling it needs only Hugo&amp;rsquo;s &lt;code&gt;taxonomies:&lt;/code&gt;&#xA;configuration: the term pages, filter chips, rail cloud and navbar panel are all&#xA;generated by the theme, with no template to write.&lt;/p&gt;&#xA;&lt;p&gt;This page carries a category. The &amp;ldquo;Categories: Customization&amp;rdquo; line under the&#xA;title, and the counted chips under the outline in the right column, need no&#xA;configuration on the page itself.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Repository links and page info</title>
        <link>https://oink.pgsty.com/docs/customize/repository/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/repository/</guid>
        <description>&lt;p&gt;The repository-related entries in the &lt;strong&gt;action menu&lt;/strong&gt; at the right of the&#xA;breadcrumb row are derived from a few &lt;code&gt;github_*&lt;/code&gt; parameters, and the &amp;ldquo;last&#xA;modified&amp;rdquo; line at the page end comes from git history. Both assume the content&#xA;lives in a GitHub-style repository.&lt;/p&gt;&#xA;&lt;h2 id=&#34;link-configuration&#34;&gt;Four keys wire up every link&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Every repository-related entry in the action menu derives from these keys:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--titled&#34; id=&#34;td-code-dded75a2-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;5&#34; role=&#34;group&#34; aria-labelledby=&#34;td-code-dded75a2-fence-0-title&#34;&gt;&#xA;  &lt;div class=&#34;td-code__header&#34;&gt;&#xA;    &lt;span class=&#34;td-code__filename&#34; id=&#34;td-code-dded75a2-fence-0-title&#34; title=&#34;hugo.yml&#34;&gt;hugo.yml&lt;/span&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-dded75a2-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;params&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;github_repo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;https://github.com/pgsty/oink.pgsty.com&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# the documentation source repository&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;github_project_repo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;https://github.com/pgsty/oink&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# the product repository (optional)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;github_branch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# defaults to main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;github_subdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# path from the repository root to the Hugo site root&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;That is this site&amp;rsquo;s real configuration. With it filled in, this page&amp;rsquo;s action&#xA;menu points at:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Print</title>
        <link>https://oink.pgsty.com/docs/customize/print/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/print/</guid>
        <description>&lt;p&gt;Printing one page needs no configuration: the shell (sidebar, outline, navbar,&#xA;buttons) all carries &lt;code&gt;d-print-none&lt;/code&gt;, so the browser&amp;rsquo;s &lt;code&gt;Cmd/Ctrl+P&lt;/code&gt; yields a&#xA;clean body. That is why the theme has no per-page &amp;ldquo;print this page&amp;rdquo; button.&lt;/p&gt;&#xA;&lt;p&gt;What does need configuration is the other thing: assembling a whole section (or&#xA;a whole book) and all its pages into one continuous document with a table of&#xA;contents. What follows covers enabling it, the structure of the print view, and&#xA;how to exclude pages.&lt;/p&gt;</description>
      </item>
    <item>
        <title>AI-agent support</title>
        <link>https://oink.pgsty.com/docs/customize/agents/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/docs/customize/agents/</guid>
        <description>&lt;p&gt;An HTML page carries a sidebar, scripts and styles, and a model has to strip&#xA;that shell before reading it. OINK emits the same content a second time as plain&#xA;Markdown: one &lt;code&gt;.md&lt;/code&gt; per page, one &lt;code&gt;llms.txt&lt;/code&gt; index at the site root, and a &amp;ldquo;copy&#xA;as Markdown&amp;rdquo; button on the page. All three are build-time artifacts, with no&#xA;runtime service and no content negotiation.&lt;/p&gt;&#xA;&lt;p&gt;All three have to be declared by the site under &lt;code&gt;outputs&lt;/code&gt;; the theme does not&#xA;turn them on.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
