# 消费站与迁移证据

> 塑造 OINK 外壳、创作原语与确定性 Book 迁移策略的定期语料快照。

---

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

---

> [!NOTE] 带日期的语料快照
> 这些计数描述 2026 年 8 月被检查的仓库。它们是设计选择的证据，不是实时产品指标或兼容承诺。

## 语料 {#corpus}

创作语料盘点扫描了十一个 OINK 消费站点的 `content/` 树：共 5,325 个 Markdown 文件，其中
5,293 个带 YAML front matter。样本同时包含单语言英文与中文参考站、双语产品站、发布归档、
自定义落地页，以及独立的 Book 消费站。

盘点刻意测量源码 Markdown，而不是生成后的 HTML。统计项包括 shortcode 调用、代码围栏属性、
callout、表格 marker、原始 HTML、front matter 键、内容类型与站点自有 layout。随后针对五个
长篇内容消费者又做了一轮 Book 专项盘点。

## 改变设计的结论 {#findings}

| 证据                                                              | 形成的选择                                                                           |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| 内容从近乎纯 Markdown 到大量嵌套组件同时存在                      | 原生 Markdown 是默认形态；只有明确能力缺口才保留全量形态                             |
| 文档、Blog、Landing、发布与书籍反复在站点侧重做导航或卡片         | 延长共享外壳、注册表和内容原语，不增加并行系统                                       |
| 站点自有表格 class 很常见，匹配 canonical Fields 表头的表格却很少 | 钩子属性使用白名单，但保留文档明确的站点 class 扩展点；不能从任意二列表格猜测 Fields |
| Book 站各自拥有图、表、公式、示例和交叉引用约定                   | 编号原语与迁移 profile 必须确定性分类、保留稳定 ID，并验证渲染目标                   |
| 站点同时存在单语言、对页双语和生成式语言内容                      | 必须明确语言权威与生成边界；迁移不能把未跟踪的生成树当作源码                         |
| 富 HTML 页面仍要提供 Print、Markdown、订阅源和 Agent 输出         | 接受交互 HTML 之前，每个组件先声明所有输出中的降级行为                               |

证据也否决了若干看起来诱人的新增项：文档站不足以支撑第二套 Landing 系统；Book 站不需要新封面
组件；连载归档不值得增加独立 shell type；远程 API 采集属于站点侧 CI，而不是承诺本地构建的 Hugo
主题。

## 块与表格证据 {#block-and-table-evidence}

针对十一个站点与 Book 消费者的专项盘点共发现 11,484 张 pipe table。只有 11 张已经匹配严格的
Fields 表头词汇，约 874 张属于参考型表格，约 1,300 张属于兼容矩阵。因此 OINK 采用显式
`.fields` 与 `.matrix` marker，不按表格形状猜测语义。

同一轮盘点在十一个站点中发现 18 个 Steps 块，它们都使用带标题和富内容的全量形态。平台探针表明，
原生有序列表可以承载其中大多数内容，却不能在列表项内安全容纳另一个全量 `%` 容器。因此 OINK 保留
两种形态是为了技术能力边界，而不只是书写偏好。

## 确定性 Book 迁移 {#book-migration}

三个带日期的干跑 profile 用于证明迁移规则能解释每个被识别的来源，而不编造语义：

| Profile 快照      | 分类结果                                                 | 人工边界                                   |
| ----------------- | -------------------------------------------------------- | ------------------------------------------ |
| DDIA v2           | 106 张图、3 张表、22 个代码示例，相关 304 条链接全部入账 | 1 条题注链接降级为可见文本，无未解释跳过项 |
| DDIA v1           | 90 张编号图与 203 条匹配引用                             | 14 张装饰性或无编号图片刻意不处理          |
| TPME              | 31 张图、10 张表、44 条编号引用与 1,018 条通用稳定引用   | 被识别项目零跳过                           |
| 私有 Book profile | 119 张图、5 张表与 136 条编号引用                        | 3 张歧义图片保留人工复核                   |

每个 profile 都先干跑，只在歧义边界明确后写入；第二次执行变更数为零；随后以警告即失败的模式
构建，并通过渲染后的 kind、编号和锚点检查。公开迁移工具与当前 profile 边界见
[创作书籍](/zh/docs/write/book/#migrate)和
[迁移契约](/zh/docs/design/migration/)。

## 边界 {#limits}

这些数字不能直接用于产品宣传，也不能当作当前站点清单。重做研究时，需要重新确定仓库清单并生成
新的带日期报告。本公开记录刻意排除了本机路径、未提交内容、私有仓库名称、原始 Agent 对话与生成
构建产物。
