<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Release on OINK</title><link>https://lxghost.github.io/categories/release/</link><description>Recent content in Release 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/release/index.xml" rel="self" type="application/rss+xml"/><item><title>Oink 0.8.0 — A whole section in one fetch, the sidebar as data, and who links here</title><link>https://lxghost.github.io/blog/release/0.8.0/</link><pubDate>Thu, 27 Aug 2026 00:00:00 +0800</pubDate><guid>https://lxghost.github.io/blog/release/0.8.0/</guid><description>&lt;p&gt;Oink 0.8.0 changes no component API and needs no content edits. Two of its&#10;three additions serve the reader that arrives as a program. Every page already&#10;publishes a &lt;code&gt;.md&lt;/code&gt; twin, which serves an agent that knows the page it wants; an&#10;agent that wants the manual still had to crawl it a page at a time, discovering&#10;links as it went. Two new output formats answer the other half: give me the&#10;whole section, and tell me what is in the site before I fetch anything. The&#10;third addition is for the reader who is a person — a page&amp;rsquo;s right rail can now&#10;list the pages that link to it.&lt;/p&gt;</description></item><item><title>Oink 0.7.1 — Nothing leaves the page, and bad input stops breaking builds</title><link>https://lxghost.github.io/blog/release/0.7.1/</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0800</pubDate><guid>https://lxghost.github.io/blog/release/0.7.1/</guid><description>&lt;p&gt;Oink 0.7.1 changes no component API and needs no content edits. It closes the&#10;code findings from an external review of the 0.7.0 line: one real privacy leak,&#10;a class of configuration values that could stop a build outright, and three&#10;components that had never been taught what a non-HTML output is.&lt;/p&gt;&#10;&lt;div class="td-release-card-static"&gt;&#10; &lt;p&gt;&lt;strong&gt;v0.7.1&lt;/strong&gt; · &lt;time datetime="2026-08-26"&gt;2026-08-26&lt;/time&gt;&lt;/p&gt;&#10; &lt;ul&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/releases/tag/v0.7.1"&gt;View release&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.7.1.tar.gz"&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.7.1.zip"&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink"&gt;pgsty/oink&lt;/a&gt;&lt;/li&gt;&#10; &lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="at-a-glance"&gt;At a glance&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Swagger UI no longer contacts the online validator. A published API page made&#10;a third-party request on every view; it no longer makes any.&lt;/li&gt;&#10;&lt;li&gt;A URL written into site configuration now passes the same safety check as one&#10;written by an author.&lt;/li&gt;&#10;&lt;li&gt;A mistyped number or boolean in &lt;code&gt;params&lt;/code&gt; warns and falls back instead of&#10;ending an ordinary &lt;code&gt;hugo server&lt;/code&gt; session.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;swagger&lt;/code&gt;, &lt;code&gt;redoc&lt;/code&gt; and &lt;code&gt;asciinema&lt;/code&gt; emit a plain link in print, Markdown and&#10;RSS, and load their runtime only in interactive HTML.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="swagger-validator"&gt;Swagger stopped phoning home&#10;&lt;/h2&gt;&#10;&lt;p&gt;Swagger UI ships with an online validator enabled by default, pointed at&#10;&lt;code&gt;validator.swagger.io&lt;/code&gt;. It skips that request for &lt;code&gt;localhost&lt;/code&gt;, which is why no&#10;local preview and no browser test ever showed it — and why every &lt;em&gt;deployed&lt;/em&gt;&#10;API page was quietly handing your spec URL to a third party. On an intranet&#10;that URL is an internal hostname.&lt;/p&gt;</description></item><item><title>Oink 0.7.0 — A theme color, one typographic voice, and diagrams you can read</title><link>https://lxghost.github.io/blog/release/0.7.0/</link><pubDate>Tue, 25 Aug 2026 00:00:00 +0800</pubDate><guid>https://lxghost.github.io/blog/release/0.7.0/</guid><description>&lt;p&gt;Oink 0.7.0 changes no component API. It works on the two surfaces a reader&#10;actually spends time in — the shell around the page and the type on it — and&#10;finishes a fence that had never been designed, only inherited.&lt;/p&gt;&#10;&lt;div class="td-release-card-static"&gt;&#10; &lt;p&gt;&lt;strong&gt;v0.7.0&lt;/strong&gt; · &lt;time datetime="2026-08-25"&gt;2026-08-25&lt;/time&gt;&lt;/p&gt;&#10; &lt;ul&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/releases/tag/v0.7.0"&gt;View release&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.7.0.tar.gz"&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.7.0.zip"&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink"&gt;pgsty/oink&lt;/a&gt;&lt;/li&gt;&#10; &lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="at-a-glance"&gt;At a glance&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;params.ui.theme_color&lt;/code&gt; gives a section its own accent, applied to the&#10;shell&amp;rsquo;s &lt;em&gt;grounds&lt;/em&gt; rather than to the prose.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;params.ui.fonts&lt;/code&gt; reaches all seven typography roles; a Book no longer&#10;carries a face of its own.&lt;/li&gt;&#10;&lt;li&gt;A &lt;code&gt;mermaid&lt;/code&gt; fence is a figure: centred, unframed, redrawn in place when the&#10;colour scheme changes, and openable at full size in a pan/zoom dialog.&lt;/li&gt;&#10;&lt;li&gt;Inline code is crimson ink on a hairline wash instead of a grey pill.&lt;/li&gt;&#10;&lt;li&gt;First-party browser behaviour publishes as stable capability chunks under&#10;&lt;code&gt;js/chunks/&lt;/code&gt;, so a page selects scripts instead of minting its own bundle.&lt;/li&gt;&#10;&lt;li&gt;Configuration schemas are generated from the resolvers, not maintained by&#10;hand.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="theme-color"&gt;A theme color&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;params.ui.theme_color&lt;/code&gt; takes a &lt;code&gt;#rgb&lt;/code&gt; or &lt;code&gt;#rrggbb&lt;/code&gt; hex and tints the shell&amp;rsquo;s&#10;accent grounds: the selected sidebar row and the ground its neighbours take&#10;under the pointer, hover washes, the outline pill with its travelling rail and&#10;dot, tag and chip hovers, a card&amp;rsquo;s hovered edge, a share button&amp;rsquo;s hover fill,&#10;text selection, and focus rings.&lt;/p&gt;</description></item><item><title>Oink 0.6.0 — Immersive blogs, safer builds, smaller internals</title><link>https://lxghost.github.io/blog/release/0.6.0/</link><pubDate>Thu, 20 Aug 2026 00:00:00 +0800</pubDate><guid>https://lxghost.github.io/blog/release/0.6.0/</guid><description>&lt;p&gt;Oink 0.6.0 keeps the component API established in 0.5 and improves the systems&#10;around it: long-form reading, Blog discovery, attribution, release publishing,&#10;build resilience, and maintainability.&lt;/p&gt;&#10;&lt;p&gt;There is no new &lt;code&gt;article&lt;/code&gt; type or second shell. Immersive reading is a&#10;configuration of the existing Blog shell, so articles remain in the same lists,&#10;feeds, taxonomies, series, and pager sequence.&lt;/p&gt;&#10;&lt;div class="td-release-card-static"&gt;&#10; &lt;p&gt;&lt;strong&gt;v0.6.0&lt;/strong&gt; · &lt;time datetime="2026-08-20"&gt;2026-08-20&lt;/time&gt;&lt;/p&gt;&#10; &lt;ul&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/releases/tag/v0.6.0"&gt;View release&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.6.0.tar.gz"&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.6.0.zip"&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink"&gt;pgsty/oink&lt;/a&gt;&lt;/li&gt;&#10; &lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="at-a-glance"&gt;At a glance&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The Blog shell gains a full-bleed &lt;code&gt;hero&lt;/code&gt; image and an in-flow outline rail.&lt;/li&gt;&#10;&lt;li&gt;Blog publishing gains profiles and bylines, series order, list/cards/table&#10;indexes, and a local-first share bar.&lt;/li&gt;&#10;&lt;li&gt;Vendored and translated pages gain optional, validated attribution.&lt;/li&gt;&#10;&lt;li&gt;The theme no longer calls &lt;code&gt;errorf&lt;/code&gt;: ordinary previews warn and safely&#10;degrade; publishing builds remain strict through &lt;code&gt;--panicOnWarning&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;Release metadata is now one &lt;code&gt;release_url&lt;/code&gt;, not a duplicated fact map.&lt;/li&gt;&#10;&lt;li&gt;Repeated template work, page bundles, and checker builds have been reduced&#10;without pruning Font Awesome or other public authoring assets.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="article-shell"&gt;Immersive Blog presentation&#10;&lt;/h2&gt;&#10;&lt;p&gt;An immersive page uses four independent front matter keys:&lt;/p&gt;</description></item><item><title>Oink 0.5.0 — Component API v5 and the converged configuration</title><link>https://lxghost.github.io/blog/release/0.5.0/</link><pubDate>Tue, 18 Aug 2026 00:00:00 +0800</pubDate><guid>https://lxghost.github.io/blog/release/0.5.0/</guid><description>&lt;p&gt;Oink 0.5.0 is the API-freeze release. It contains the change set that the 1.0&#10;line will freeze: the component API v5 (native Markdown forms first, 29&#10;shortcodes as full forms), configuration and front matter keys converged on&#10;three rules, one naming namespace for everything the theme emits, the removal&#10;of the 0.x compatibility layer and of the Docsy leftovers no site used, and a&#10;migration toolkit that rewrites a 0.4 site. Every retired key, shape, or&#10;shortcode fails the build with a message that names its replacement.&lt;/p&gt;</description></item><item><title>Oink 0.4.0 — Scenario components for complete publishing workflows</title><link>https://lxghost.github.io/blog/release/0.4.0/</link><pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/blog/release/0.4.0/</guid><description>&lt;p&gt;Oink 0.4.0 delivers the complete Scenario Components system. The original design&#10;separated Reading &amp;amp; Release, Landing, and Book work into 0.4, 0.5, and 0.6&#10;milestones. The public release consolidates those tracks into one signed&#10;&lt;code&gt;v0.4.0&lt;/code&gt; tag so consumers can adopt one coherent contract instead of a chain of&#10;interdependent previews.&lt;/p&gt;&#10;&lt;p&gt;The release remains local-first: consumer sites still build with Hugo Extended&#10;and Go, without Node.js, a browser-time API, or a CDN. Interactive behavior is&#10;progressive enhancement; HTML, print, Markdown, and RSS output retain the&#10;content needed to understand each surface.&lt;/p&gt;</description></item><item><title>Oink 0.3.0 — Authoring, navigation, and a lighter page</title><link>https://lxghost.github.io/blog/release/0.3.0/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/blog/release/0.3.0/</guid><description>&lt;div class="td-release-card-static"&gt;&#10; &lt;p&gt;&lt;strong&gt;v0.3.0&lt;/strong&gt; · &lt;time datetime="2026-08-12"&gt;2026-08-12&lt;/time&gt;&lt;/p&gt;&#10; &lt;ul&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/releases/tag/v0.3.0"&gt;View release&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.3.0.tar.gz"&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.3.0.zip"&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink"&gt;pgsty/oink&lt;/a&gt;&lt;/li&gt;&#10; &lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;&lt;strong&gt;Publication gate:&lt;/strong&gt; the linked tag must resolve, the project site must pin&#10;that exact tag, and the hosted checks must pass. Until then, treat this source&#10;page as release-candidate material.&lt;/p&gt;&#10;&lt;p&gt;Oink 0.3.0 is the authoring and navigation release. Writing a page gets a modern&#10;code-block presentation and a set of small, everyday components; reading one&#10;gets nested navigation and a Command Palette; and every page gets measurably&#10;lighter because jQuery is gone.&lt;/p&gt;</description></item><item><title>Oink 0.2.0 — Richer content and sharper presentation</title><link>https://lxghost.github.io/blog/release/0.2.0/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/blog/release/0.2.0/</guid><description>&lt;div class="td-release-card-static"&gt;&#10; &lt;p&gt;&lt;strong&gt;v0.2.0&lt;/strong&gt; · &lt;time datetime="2026-08-10"&gt;2026-08-10&lt;/time&gt;&lt;/p&gt;&#10; &lt;ul&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/releases/tag/v0.2.0"&gt;View release&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.2.0.tar.gz"&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.2.0.zip"&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink"&gt;pgsty/oink&lt;/a&gt;&lt;/li&gt;&#10; &lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Oink 0.2.0 focuses on the parts readers and authors touch most: the homepage,&#10;brand presentation, blog discovery, section indexes, and instructional content.&#10;It also turns the Oink project site into a clearer bilingual reference for the&#10;theme&amp;rsquo;s current contracts.&lt;/p&gt;&#10;&lt;p&gt;The module path, minimum Hugo version, and Hugo-only consumer build remain&#10;unchanged. The one configuration rename that can affect an existing site is&#10;documented in &lt;a href="https://lxghost.github.io/blog/release/0.2.0/#breaking-change"&gt;Breaking change&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Oink 0.1.0 — A stable local-first foundation</title><link>https://lxghost.github.io/blog/release/0.1.0/</link><pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate><guid>https://lxghost.github.io/blog/release/0.1.0/</guid><description>&lt;div class="td-release-card-static"&gt;&#10; &lt;p&gt;&lt;strong&gt;v0.1.0&lt;/strong&gt; · &lt;time datetime="2026-08-08"&gt;2026-08-08&lt;/time&gt;&lt;/p&gt;&#10; &lt;ul&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/releases/tag/v0.1.0"&gt;View release&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.1.0.tar.gz"&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink/archive/refs/tags/v0.1.0.zip"&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#10; &lt;li&gt;&lt;a href="https://github.com/pgsty/oink"&gt;pgsty/oink&lt;/a&gt;&lt;/li&gt;&#10; &lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Oink 0.1.0 is the first stable release of the Oink theme. It incorporates the&#10;0.0.1 implementation preview and the stabilization work that followed: one&#10;coherent documentation shell, a Hugo-only consumer build, local-first browser&#10;assets, multilingual behavior derived from Hugo, and reusable content&#10;components.&lt;/p&gt;&#10;&lt;p&gt;This release keeps the module path &lt;code&gt;github.com/pgsty/oink&lt;/code&gt; and requires Hugo&#10;Extended 0.160.1 or newer. A consuming site does not need Node.js, npm, PostCSS,&#10;Autoprefixer, or a CDN to build and serve theme-owned functionality.&lt;/p&gt;</description></item></channel></rss>