<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Design on OINK</title><link>https://lxghost.github.io/categories/design/</link><description>Recent content in Design on OINK</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 28 Aug 2026 00:08:16 +0800</lastBuildDate><atom:link href="https://lxghost.github.io/categories/design/index.xml" rel="self" type="application/rss+xml"/><item><title>Architecture contract</title><link>https://lxghost.github.io/docs/design/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/architecture/</guid><description>&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;OINK 0.8.0 contract&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;This is the architecture contract released with OINK 0.8.0. This page is the&#10;canonical English source; its Chinese peer is maintained beside it in&#10;&lt;code&gt;content/docs/design/&lt;/code&gt;.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="repository-and-assembly"&gt;Repository and assembly&#10;&lt;/h2&gt;&#10;&lt;p&gt;The repository root is a Hugo Module and complete theme, not a site or npm&#10;workspace. Hugo Extended compiles SCSS and templates. Browser runtimes and&#10;third-party assets are committed, so a normal build performs no network fetch.&#10;Public bilingual documentation, examples, and browser tests live in the&#10;sibling &lt;code&gt;oink.pgsty.com&lt;/code&gt; repository; the theme repository keeps only narrow&#10;internal regression fixtures under &lt;code&gt;tests/site/&lt;/code&gt; and has no separate public&#10;example surface.&lt;/p&gt;</description></item><item><title>Warnings and safe fallbacks</title><link>https://lxghost.github.io/docs/design/decisions/diagnostics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/decisions/diagnostics/</guid><description>&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;Decision&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;OINK does not call Hugo&amp;rsquo;s &lt;code&gt;errorf&lt;/code&gt;. Invalid author or site input emits a&#10;warning and either uses a documented safe fallback or omits the invalid&#10;fragment. Release and deployment builds use &lt;code&gt;--panicOnWarning&lt;/code&gt;, so the same&#10;warning remains a hard publishing failure.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="context"&gt;Context&#10;&lt;/h2&gt;&#10;&lt;p&gt;Hugo builds the whole site as one transaction. An &lt;code&gt;errorf&lt;/code&gt; raised while one&#10;page is being edited makes every URL served by that rebuild return an error,&#10;including unrelated pages and the home page. The server process survives and&#10;recovers after the input is fixed, but collaborative preview is unavailable in&#10;the meantime.&lt;/p&gt;</description></item><item><title>Goldmark block-attribute evidence</title><link>https://lxghost.github.io/docs/design/research/goldmark-attributes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/research/goldmark-attributes/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Verified snapshot&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;These probes produced byte-identical relevant output on Hugo Extended&#10;0.160.1 and 0.164.0. They explain OINK&amp;rsquo;s native component forms; the current&#10;&lt;a href="https://lxghost.github.io/docs/design/components/"&gt;component contract&lt;/a&gt; remains authoritative.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="method"&gt;Method&#10;&lt;/h2&gt;&#10;&lt;p&gt;The probe used a minimal Hugo site without OINK templates. Render hooks printed&#10;their context fields and &lt;code&gt;.Attributes&lt;/code&gt; as visible markers. The site enabled&#10;Goldmark block attributes, passthrough delimiters for inline and block math,&#10;unsafe rendering for the deliberately inspected raw HTML, and&#10;&lt;code&gt;wrapStandAloneImageWithinParagraph: false&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Backlinks and knowledge graph</title><link>https://lxghost.github.io/docs/design/proposals/knowledge-graph/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/proposals/knowledge-graph/</guid><description>&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;G1 implemented; G2/G3 remain draft&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;On 2026-08-27 every G1 open decision was resolved and G1 (static backlinks)&#10;was accepted. It is implemented on the theme&amp;rsquo;s main branch and ships with&#10;OINK 0.8.0. The local and global graphs (G2/G3) stay draft pending real-world&#10;evidence from G1; their names and configuration are not public API until&#10;accepted.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="premise"&gt;Premise&#10;&lt;/h2&gt;&#10;&lt;p&gt;Reverse navigation and a view of connected pages are properties of the link&#10;graph, not of &lt;code&gt;[[wikilink]]&lt;/code&gt; spelling. Hugo already accepts ordinary Markdown&#10;links and &lt;code&gt;ref&lt;/code&gt; / &lt;code&gt;relref&lt;/code&gt;. OINK can derive a graph from content authors already&#10;write, without adding a parser, Goldmark extension, or parallel authoring&#10;syntax.&lt;/p&gt;</description></item><item><title>Component contract</title><link>https://lxghost.github.io/docs/design/components/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/components/</guid><description>&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;OINK 0.8.0 contract&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;This is the component contract released with OINK 0.8.0. This page is the&#10;canonical English source; its Chinese peer is maintained beside it in&#10;&lt;code&gt;content/docs/design/&lt;/code&gt;.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Tutorials and exhaustive examples belong in the reader-facing&#10;&lt;a href="https://lxghost.github.io/docs/components/"&gt;Components&lt;/a&gt; section. This page defines the API and behavior&#10;that those guides rely on.&lt;/p&gt;&#10;&lt;h2 id="authoring-model"&gt;Authoring model&#10;&lt;/h2&gt;&#10;&lt;p&gt;Use ordinary Markdown when one block plus attributes can express a component.&#10;Use shortcodes for compound bodies or facts Markdown cannot carry. There is no&#10;parallel component registry. Native forms require:&lt;/p&gt;</description></item><item><title>Configuration model</title><link>https://lxghost.github.io/docs/design/decisions/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/decisions/configuration/</guid><description>&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;Decision&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;OINK keeps Hugo&amp;rsquo;s native keys and useful Docsy-compatible keys in place,&#10;places theme presentation and behaviour under &lt;code&gt;params.ui.*&lt;/code&gt;, and exposes a&#10;matching top-level front-matter key for a page override. It does not add a&#10;&lt;code&gt;params.oink.*&lt;/code&gt; tree or a registry that shadows Hugo&amp;rsquo;s configuration model.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="context"&gt;Context&#10;&lt;/h2&gt;&#10;&lt;p&gt;OINK inherits a mature configuration surface and adds shells, content output,&#10;and local interaction. Earlier designs attempted to move every theme-owned key&#10;under a new namespace and resolve a complete configuration dictionary once per&#10;page. That produced a second language beside Hugo&amp;rsquo;s own keys, complicated&#10;section cascades, and made migration larger than the behaviour it was meant to&#10;control.&lt;/p&gt;</description></item><item><title>Consumer and migration evidence</title><link>https://lxghost.github.io/docs/design/research/consumer-evidence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/research/consumer-evidence/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Dated corpus snapshot&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;These counts describe the repositories inspected in August 2026. They are&#10;evidence for design choices, not live product metrics or compatibility&#10;promises.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="corpus"&gt;Corpus&#10;&lt;/h2&gt;&#10;&lt;p&gt;The authoring survey scanned the &lt;code&gt;content/&lt;/code&gt; trees of eleven OINK consumer sites:&#10;5,325 Markdown files, of which 5,293 had YAML front matter. The set included&#10;single-language English and Chinese references, bilingual product sites,&#10;release archives, custom landing pages, and separate Book consumers.&lt;/p&gt;</description></item><item><title>Media convergence</title><link>https://lxghost.github.io/docs/design/proposals/media-convergence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/proposals/media-convergence/</guid><description>&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;Partially implemented&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;M1 (the shared media-result contract) and M2 (Landing resource metadata)&#10;are implemented on the theme&amp;rsquo;s main branch, and M3 is resolved as option 2:&#10;processing stays exclusively on native Markdown images, and the full &lt;code&gt;fig&lt;/code&gt;&#10;source form remains a container whose parameter list deliberately excludes&#10;&lt;code&gt;command&lt;/code&gt;/&lt;code&gt;options&lt;/code&gt;. M4 (compatibility retirement) stays open pending a&#10;consumer inventory. The sections below are the original design record.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="current-baseline"&gt;Current baseline&#10;&lt;/h2&gt;&#10;&lt;p&gt;The content image hook, numbered &lt;code&gt;fig&lt;/code&gt;, cards, and galleries resolve local page&#10;resources, section resources, global assets, static files, and explicit remote&#10;URLs through &lt;code&gt;content/image-resolve.html&lt;/code&gt;. Raster resources can contribute&#10;intrinsic dimensions and processing derivatives. HTML Zoom eligibility is&#10;marked with &lt;code&gt;data-td-image-zoom&lt;/code&gt;; the build-time detector only checks that&#10;theme-emitted marker.&lt;/p&gt;</description></item><item><title>OINK comprehensive review, 2026-08-26</title><link>https://lxghost.github.io/docs/design/research/2026-08-26-comprehensive-review/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/research/2026-08-26-comprehensive-review/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Review snapshot, not a new contract&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;This page records evidence collected against &lt;code&gt;github.com/pgsty/oink&lt;/code&gt; and its integration site on 2026-08-26.&#10;It changes no API and does not mean that any recommendation below is implemented. Current Design contracts,&#10;implementation, and owning checkers remain authoritative.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Superseded in part by OINK 0.7.1.&lt;/strong&gt; The code findings F01–F06 were fixed in that release — see the&#10;&lt;a href="https://lxghost.github.io/blog/release/0.7.1/"&gt;0.7.1 release notes&lt;/a&gt;. Read the findings below as the evidence that motivated the fix,&#10;not as the current state of the theme.&lt;/p&gt;</description></item><item><title>Bulk agent indexes</title><link>https://lxghost.github.io/docs/design/proposals/agent-indexes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/proposals/agent-indexes/</guid><description>&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;Implemented; ships with OINK 0.8.0&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;Accepted on 2026-08-27 after resolving every open decision. Both outputs &amp;ndash;&#10;the per-top-level-section &lt;code&gt;LLMSFULL&lt;/code&gt; bundles and the &lt;code&gt;NAVJSON&lt;/code&gt; navigation&#10;tree at the language root &amp;ndash; are implemented on the theme&amp;rsquo;s &lt;code&gt;main&lt;/code&gt; branch and&#10;ship with OINK 0.8.0, after which this proposal retires; released behaviour is&#10;owned by the&#10;&lt;a href="https://lxghost.github.io/docs/design/architecture/#outputs-and-runtime"&gt;Architecture contract&lt;/a&gt;.&#10;OINK already shipped per-page Markdown, the in-language &lt;code&gt;llms.txt&lt;/code&gt;, the HTML&#10;discovery link, and Copy Markdown; this page covers only the two new outputs.&lt;/p&gt;</description></item><item><title>Markdown-first authoring</title><link>https://lxghost.github.io/docs/design/decisions/authoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/decisions/authoring/</guid><description>&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;Decision&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;Prefer a native Markdown form when Goldmark can preserve the intended&#10;semantics. Keep a shortcode only when it provides a capability the native&#10;form cannot express. Add a content scenario by extending an existing shell&#10;and data model, not by creating a parallel rendering system.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="context"&gt;Context&#10;&lt;/h2&gt;&#10;&lt;p&gt;OINK serves short manuals, large references, release archives, landing pages,&#10;and books. A survey of eleven consumer sites covered more than five thousand&#10;Markdown files and exposed both extremes: pages with almost no theme syntax and&#10;pages assembled from many nested shortcodes and local layout overrides.&lt;/p&gt;</description></item><item><title>Shell and navigation contract</title><link>https://lxghost.github.io/docs/design/shell/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/shell/</guid><description>&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;OINK 0.8.0 contract&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;This is the shell and navigation contract released with OINK 0.8.0. This&#10;page is the canonical English source; its Chinese peer is maintained beside&#10;it in &lt;code&gt;content/docs/design/&lt;/code&gt;.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="authorities-and-navigation"&gt;Authorities and navigation&#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;Concern&lt;/th&gt;&#10; &lt;th scope="col"&gt;Authority&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Global navigation&lt;/td&gt;&#10; &lt;td&gt;Hugo &lt;code&gt;menus.main&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Docs / Book sidebar and pager&lt;/td&gt;&#10; &lt;td&gt;content tree or &lt;code&gt;data/docs_nav.json&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Root switcher&lt;/td&gt;&#10; &lt;td&gt;resolved top-level content roots&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Discovery&lt;/td&gt;&#10; &lt;td&gt;per-language local search index&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Page and Palette actions&lt;/td&gt;&#10; &lt;td&gt;shared action registry&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;No feature introduces another menu or page tree. One menu child level is&#10;interactive; deeper levels warn and flatten beneath linked group headings.&#10;External links use &lt;code&gt;target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener noreferrer&amp;quot;&lt;/code&gt;; internal links&#10;remain language- and subpath-aware.&lt;/p&gt;</description></item><item><title>Book publication pipeline</title><link>https://lxghost.github.io/docs/design/proposals/book-publication/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/proposals/book-publication/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Draft proposal with implemented publication tooling&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;The opt-in &lt;code&gt;BookManifest&lt;/code&gt;, the generic EPUB and PDF runners and their artifact&#10;validation are released, and the normative account of them is in&#10;&lt;a href="https://lxghost.github.io/docs/design/architecture/"&gt;Architecture&lt;/a&gt;. No build publishes either file on&#10;its own. What remains open here, and only here, is consumer migration.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="context-and-evidence"&gt;Context and evidence&#10;&lt;/h2&gt;&#10;&lt;p&gt;OINK already owns Book navigation order, numbered figures, tables, equations,&#10;examples, cross-references, whole-Book Print HTML, heading and footnote&#10;namespacing, and per-page Markdown degradation. The missing boundary is a&#10;machine-readable whole-Book handoff that a generic packager can consume.&lt;/p&gt;</description></item><item><title>Generated configuration schema</title><link>https://lxghost.github.io/docs/design/decisions/config-schema/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/decisions/config-schema/</guid><description>&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;Decision&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;The two JSON Schemas under &lt;code&gt;schema/&lt;/code&gt; are projected by&#10;&lt;code&gt;bin/generate-config-schema.py&lt;/code&gt; from the theme&amp;rsquo;s &lt;code&gt;hugo.yaml&lt;/code&gt; and the&#10;template read-point scan; hand edits cannot survive CI. The schema is a&#10;read-only projection of the existing authorities, never a third one.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="context"&gt;Context&#10;&lt;/h2&gt;&#10;&lt;p&gt;The theme already has two configuration authorities: &lt;code&gt;hugo.yaml&lt;/code&gt;, which&#10;declares every default beside a comment explaining it, and&#10;&lt;code&gt;check-params.py&lt;/code&gt;, whose read-point scan knows every key the templates&#10;actually consume. Editors know neither, so authors type &lt;code&gt;params.ui.*&lt;/code&gt; keys&#10;and front matter from memory.&lt;/p&gt;</description></item><item><title>Landing contract</title><link>https://lxghost.github.io/docs/design/landing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/landing/</guid><description>&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;OINK 0.8.0 contract&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;This is the landing-page contract released with OINK 0.8.0. This page is the&#10;canonical English source; its Chinese peer is maintained beside it in&#10;&lt;code&gt;content/docs/design/&lt;/code&gt;.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Shared rules live in the &lt;a href="https://lxghost.github.io/docs/design/architecture/"&gt;architecture&lt;/a&gt; and&#10;&lt;a href="https://lxghost.github.io/docs/design/components/"&gt;component&lt;/a&gt; contracts; migration belongs in the&#10;&lt;a href="https://lxghost.github.io/docs/design/migration/"&gt;migration contract&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="shell-and-data"&gt;Shell and data&#10;&lt;/h2&gt;&#10;&lt;p&gt;Any regular page may declare &lt;code&gt;layout: landing&lt;/code&gt;. It renders navbar, full-width&#10;canvas, and footer without docs sidebars or TOC rails. The homepage keeps&#10;&lt;code&gt;data/home/&amp;lt;lang&amp;gt;.yaml&lt;/code&gt; as a compatible authoring path through the same renderer.&lt;/p&gt;</description></item><item><title>OINK migration boundary</title><link>https://lxghost.github.io/docs/design/migration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/migration/</guid><description>&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;OINK 0.8.0 contract&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;This is the migration contract released with OINK 0.8.0. This page is the&#10;canonical English source; its Chinese peer is maintained beside it in&#10;&lt;code&gt;content/docs/design/&lt;/code&gt;.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;This is source and configuration guidance, not a release ledger. Local source,&#10;commit, tag, push, consumer pin, deployment, and production parity remain&#10;separate states. For the reader-facing upgrade procedure, see&#10;&lt;a href="https://lxghost.github.io/docs/admin/upgrade/"&gt;Upgrade&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="toolkit-scope"&gt;Toolkit scope&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;bin/migrations/oink06.py&lt;/code&gt; only scans and automatically rewrites Markdown files&#10;under a site&amp;rsquo;s content directory, including supported YAML front matter. It&#10;does not rewrite Hugo configuration, data files, layouts, assets, modules, or&#10;generated output. TOML/JSON front matter and ambiguous Markdown are reported&#10;with positions for manual review.&lt;/p&gt;</description></item><item><title>Design decisions</title><link>https://lxghost.github.io/docs/design/decisions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/decisions/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Accepted rationale&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;A decision explains why OINK chose one compatible design over another. The&#10;five contracts above it remain the normative description of current&#10;behaviour; implementation and owning checkers remain the executable facts.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;OINK used to keep reviews, PRDs, and execution notes in a local &lt;code&gt;plan/&lt;/code&gt;&#10;directory. That made useful reasoning hard to discover and allowed abandoned&#10;designs to look authoritative. Accepted reasoning now lives here, in the same&#10;bilingual, versioned site as the contracts it supports.&lt;/p&gt;</description></item><item><title>Design and development</title><link>https://lxghost.github.io/docs/design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/</guid><description>&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;OINK 0.8.0 contract&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;This section publishes the maintainer contracts released with OINK 0.8.0,&#10;with Hugo Extended 0.160.1 as the compatibility floor. The canonical&#10;bilingual sources live in this repository under &lt;code&gt;content/docs/design/&lt;/code&gt;.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;This section is the durable design record for OINK. It complements the&#10;task-oriented guides elsewhere on the site: use those guides to build a site,&#10;and use this section to understand current invariants, the reasons behind them,&#10;the evidence used to evaluate alternatives, and work that is still only a&#10;proposal.&lt;/p&gt;</description></item><item><title>Design research</title><link>https://lxghost.github.io/docs/design/research/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/research/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Evidence, not a contract&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;Research records what was measured, with which inputs and tool versions.&#10;Results may explain a decision, but they do not override the current&#10;contracts or implementation.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Research belongs in the public Design tree when another maintainer can inspect&#10;its method, understand its limits, and repeat the relevant check. Raw agent&#10;transcripts, temporary build logs, and local absolute paths do not meet that&#10;standard.&lt;/p&gt;</description></item><item><title>Design proposals and PRDs</title><link>https://lxghost.github.io/docs/design/proposals/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/docs/design/proposals/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Non-normative material&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;A proposal describes behaviour that may not exist. Current behaviour is&#10;defined by the contracts, accepted decisions, implementation, and owning&#10;checkers. Never use a proposal as a configuration reference.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;This section is the canonical home for OINK product requirement documents,&#10;RFC-style designs, and unresolved maintainer proposals. Do not create a local&#10;&lt;code&gt;plan/&lt;/code&gt;, &lt;code&gt;plans/&lt;/code&gt;, &lt;code&gt;proposal/&lt;/code&gt;, or parallel design tree in the theme repository&#10;or the documentation repository.&lt;/p&gt;</description></item></channel></rss>