# OINK 0.8.1 — Stable Print anchors, resilient Book numbers, and release-ready packaging

> OINK 0.8.1 is a focused maintenance release: single-page Print keeps the same heading and footnote anchors as ordinary HTML, long Book titles no longer squeeze their sidebar numbers, and the project presentation now leads new sites through OINK Starter.

---

LLMS index: [llms.txt](/llms.txt)

---

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.

**v0\.8\.1 · 2026-08-29**
- [View release](https://github.com/pgsty/oink/releases/tag/v0.8.1)
- [Source · tar\.gz](https://github.com/pgsty/oink/archive/refs/tags/v0.8.1.tar.gz)
- [Source · zip](https://github.com/pgsty/oink/archive/refs/tags/v0.8.1.zip)
- [pgsty\/oink](https://github.com/pgsty/oink)

## At a glance {#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 {#print-ids}

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 {#book-numbers}

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 {#starter}

The recommended starting point is now the small
[`pgsty/oink-starter`](https://github.com/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](/docs/start/starter/) 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](/docs/start/from-scratch/).

## Upgrade {#upgrade}

```bash
hugo mod get github.com/pgsty/oink@v0.8.1
hugo mod tidy
```

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](https://github.com/pgsty/oink/blob/main/CHANGELOG.md).
