<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Design and development on OINK</title><link>https://lxghost.github.io/docs/design/</link><description>Recent content in Design and development 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/docs/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>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>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>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></channel></rss>