OINK 0.8.1 — Stable Print anchors, resilient Book numbers, and release-ready packaging
OINK 0.8.1 closes two narrow rendering defects and brings the public project surface into line with the framework that shipped in 0.8.0. It changes no component API, configuration key, content syntax, or compatibility floor. An existing 0.8.0 site can update its module pin without migrating content.
At a glance
- A page rendered by itself in Print now keeps exactly the ordinary page’s heading and footnote IDs. Section and whole-Book Print still namespace those page-local IDs because several source pages share one aggregate document.
- A Book sidebar number is now an atomic fixed-width cell. A long title may wrap, but it cannot shrink, clip, or wrap the number beside it.
- Continuous integration uses one pinned Hugo Extended 0.165.0 toolchain for theme, publication, site, and browser checks. Hugo Extended 0.160.1 remains the declared consumer compatibility floor.
- The project README now makes OINK Starter the primary route, documents the capability and compatibility boundaries, shows representative production sites, and explains why OINK is a distinct theme rather than a Docsy skin.
- New 3:2 Hugo Themes gallery media, richer theme metadata, and explicit Docsy attribution complete the submission package without adding page assets to a consumer site.
Print IDs match the surface being rendered
Heading and footnote IDs are page-local facts in ordinary HTML. Before 0.8.1, the same page rendered alone as Print received the prefix reserved for an aggregate, so a URL fragment that worked on the regular page did not identify the corresponding element in that page’s Print output.
The rule is now explicit:
| Output | Heading and footnote IDs |
|---|---|
| Ordinary HTML page | Authored or Goldmark-generated page-local IDs |
| Single-page Print | The same page-local IDs as ordinary HTML |
| Multi-page section Print | Source-page namespace added to page-local IDs |
| Whole-Book Print | Source-page namespace added to page-local IDs |
Explicit Book targets such as figures, tables, equations, and examples remain
stable. Aggregate output still rewrites its cross-page links to the namespaced
heading and footnote targets, preventing two chapters with #overview or
fn:1 from producing duplicate IDs in one document.
Book numbers stay readable beside long titles
The Book sidebar uses a number cell followed by a title cell. The number cell could previously inherit shrinking and overflow behaviour from a long title, which made chapter numbers clip or break across lines at narrow widths. The number is now non-shrinking and atomic; only the title wraps. This is a CSS-only correction and does not change Book numbering or navigation order.
A clearer first route into OINK
The recommended starting point is now the small
pgsty/oink-starter template rather
than a clone of the documentation regression site. It includes neutral Docs,
Blog, and Book content, three language profiles, and warning-strict GitHub
Pages and Cloudflare Pages workflows without OINK’s own analytics, comments,
test harness, or brand.
The new Starter tutorial takes that baseline through identity, languages, home data, content and navigation, brand, integrations, strict builds, and deployment in that order. Existing Hugo sites can still use the smaller from-scratch module path.
Upgrade
Commit both go.mod and go.sum, then run the site’s warning-strict production
build. No content or configuration migration is required. The complete change
list is in
CHANGELOG.md.
