# OINK 0.8.1：稳定的 Print 锚点、不被标题挤压的 Book 编号与完整发布材料

> OINK 0.8.1 是一次范围明确的维护版本：单页 Print 与普通 HTML 保持相同的标题与脚注锚点，过长的 Book 标题不再挤压侧栏编号，项目公开入口也改为从 OINK Starter 引导新站点。

---

LLMS 索引： [llms.txt](/zh/llms.txt)

---

OINK 0.8.1 收口了两个小而具体的渲染问题，并让项目的公开展示与 0.8.0
已经交付的框架能力保持一致。它没有修改组件 API、配置键、内容语法或兼容性下限。
现有 0.8.0 站点只需升级模块固定版本，不需要迁移内容。

**v0\.8\.1 · 2026-08-29**
- [查看发布](https://github.com/pgsty/oink/releases/tag/v0.8.1)
- [源码 · tar\.gz](https://github.com/pgsty/oink/archive/refs/tags/v0.8.1.tar.gz)
- [源码 · zip](https://github.com/pgsty/oink/archive/refs/tags/v0.8.1.zip)
- [pgsty\/oink](https://github.com/pgsty/oink)

## 概览 {#at-a-glance}

- 一个页面单独渲染为 Print 时，现在与普通页面保持完全相同的标题和脚注 ID。
  分区与整书 Print 仍会给这些页面局部 ID 增加命名空间，因为多个源页面共享
  同一份聚合文档。
- Book 侧栏编号现在是宽度固定的原子单元。长标题可以换行，但不能再压缩、裁切或
  拆开旁边的编号。
- 持续集成对主题、出版、站点与浏览器检查统一使用固定的 Hugo Extended 0.165.0。
  Hugo Extended 0.160.1 仍是向消费站点声明的兼容性下限。
- 项目 README 现在把 OINK Starter 放在第一条路径，记录能力与兼容边界、代表性生产站点，
  也明确说明 OINK 为何是独立主题，而不是 Docsy 换皮。
- 新的 3:2 Hugo Themes 展示图、更完整的主题元数据与明确的 Docsy 归属补齐了提交材料，
  且不会给消费站点增加页面资源。

## Print ID 应与当前输出表面一致 {#print-ids}

普通 HTML 中的标题与脚注 ID 是页面局部事实。在 0.8.1 之前，同一页单独渲染为 Print 时，
也被加上了只应用于聚合文档的前缀。于是在普通页面上有效的 URL fragment，在单页
Print 中不再指向对应元素。

现在的规则是：

| 输出 | 标题与脚注 ID |
| --- | --- |
| 普通 HTML 页面 | 作者明确编写或 Goldmark 生成的页面局部 ID |
| 单页 Print | 与普通 HTML 完全相同的页面局部 ID |
| 多页分区 Print | 给页面局部 ID 增加源页面命名空间 |
| 整书 Print | 给页面局部 ID 增加源页面命名空间 |

图、表、公式和示例等显式 Book 目标仍然稳定。聚合输出仍会把跨页链接改写到加了命名
空间的标题和脚注目标，避免两个章节同时带有 `#overview` 或 `fn:1` 时在一份文档中生成
重复 ID。

## 长标题旁的 Book 编号保持可读 {#book-numbers}

Book 侧栏使用一个编号单元和一个标题单元。以前编号可能继承长标题的压缩与溢出行为，
在窄屏下被裁切或拆行。现在编号不会收缩，且保持为一个整体；只有标题换行。这是一项
纯 CSS 修正，不改变 Book 编号或导航顺序。

## 从更清晰的起点进入 OINK {#starter}

现在推荐从小而中性的
[`pgsty/oink-starter`](https://github.com/pgsty/oink-starter) 模板开始，而不是克隆文档回归站。
它内置中性的 Docs、Blog 与 Book 内容、三种语言 profile，以及 warning 即失败的
GitHub Pages 与 Cloudflare Pages workflow，不包含 OINK 自己的分析、评论、测试框架或品牌。

新的 [Starter 教程](/zh/docs/start/starter/) 依次处理身份、语言、首页数据、内容与导航、品牌、
集成、严格构建和部署。现有 Hugo 站点仍可以使用更小的
[从零开始模块路径](/zh/docs/start/from-scratch/)。

## 升级 {#upgrade}

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

提交 `go.mod` 与 `go.sum`，再执行站点的 warning 即失败生产构建。不需要迁移内容或配置。
完整变更见 [CHANGELOG.md](https://github.com/pgsty/oink/blob/main/CHANGELOG.md)。
