这是本节的多页打印视图。 .

返回本页常规视图.

Oink 发布注记

OINK 的版本发布注记、升级指南与兼容性说明

1 - Oink 0.4.0 — 面向完整发布流程的场景组件体系

Oink 0.4.0 在一个合并发布中交付连续阅读与发布界面、可复用 Landing 页面、 带稳定引用的 Book 出版能力,以及键盘优先的站点外壳。

发布日期:2026-08-14 · 已签名主题标签v0.4.0 · 代码仓库pgsty/oink

Oink 0.4.0 完整交付场景组件体系。原始设计将 Reading & Release、Landing 与 Book 分别放在 0.4、0.5、0.6 三个里程碑中;公开版本将三条轨道合并到一个已签名的 v0.4.0 标签,让消费站接入一套连贯契约,而不是一串彼此依赖的预览版本。

本版本继续保持本地优先:消费站仍然只需 Hugo Extended 与 Go,不需要 Node.js、浏览器端 API 或 CDN。所有交互都采用渐进增强;HTML、打印、Markdown 与 RSS 输出会保留理解对应界面所需的完整内容。

版本亮点

阅读与发布

文档、Book 与博客页面现在拥有连续阅读 Pager,其顺序来自读者在侧栏看到的同一棵扁平导航树。上一页和下一页也会作为同源 rel 元数据写入文档头。显式导航数据、纯链接条目、侧栏分组和博客时间顺序仍保留各自语义,不会意外变成阅读目的地。

数学公式可以通过 Goldmark passthrough 使用主题内置的本地 KaTeX 渲染器。暂时无法启用 passthrough 的站点,可以使用严格、无参数的 eq 逃生舱渲染块公式;只有显式提供 num 时,同一短代码才进入 Book 的编号公式模式。

发布页面可以从本地 front matter 渲染发布事实、发布卡片、校验和与资产清单,无需浏览器查询 GitHub。经过验证的 data/download/<key>.yaml 模型同时供 download 短代码与 Landing 下载分区使用,区分滚动渠道、固定版本渠道与明确的待发布状态。

完整契约见顺序阅读与数学公式版本发布与下载

Landing 页面

数据驱动的首页渲染器现在也是普通页面可用的 layout: landing 外壳。页面可以使用内联数据,或从 data/landing/<key>/ 读取带语言回退的记录,再组合 21 种内置分区,包括价格、对比表、命令框、步骤、时间线、代码面板、案例、下载与条形图。

所有事实都在构建时留在本地。揭示、数字递增、复制、主题图片和紧凑菜单等可选行为只在 Landing 页面需要时加载。关闭 JavaScript 后内容仍然完整;跑马灯可以因焦点或用户选择暂停,遵守 reduced motion,并向辅助技术隐藏重复轨道。

数据解析、全部 21 种分区、本地事实规则与输出矩阵见 Landing 页面

Book 出版

长篇手册可以在既有文档外壳上声明 Book 元数据。章节获得草稿标签、当前页侧栏标题,以及语义化的 figtbl、编号 eq 与按当前语言解析的 xref 目标。整书图表目录与目录树复用同一套注册表。

可选的整书打印文档会把跨章节组件链接改写为文档内引用,并为重复标题 ID 加命名空间。配套迁移工具默认 dry-run、可重复执行,提供可复现的 TPME、DDIA 与 pg-internal 配方、机器可读报告、歧义跳过项,以及第二次运行零变更检查。

创作与迁移契约见 Book 出版

键盘与站点外壳

站点外壳现在支持单键阅读导航:ws 在侧栏移动,ad 折叠或展开分组, jk 在页面大纲间移动,qe 沿连续 Pager 翻页。h 切换会话级阅读模式; ltfc 分别切换语言、主题、搜索与命令界面。所有按键都会让位于编辑控件、输入法组合、按住的修饰键与已打开的对话框。

导航栏现在覆盖文档、博客、taxonomy 与 Swagger 布局,并以一个紧凑状态取代第二套移动菜单。页面操作移到面包屑行,成为以「复制 Markdown」为主操作的分裂按钮。页脚支持经过验证的 fatslimnone 三种样式,读者还可以折叠胖页脚的链接网格并保留该偏好。

参见键盘导航导航与菜单

兼容性与行为变化

  • 最低支持版本仍为 Hugo Extended 0.160.1。
  • 模块路径仍为 github.com/pgsty/oink;消费站仍不需要前端工具链。
  • Pager 默认作用于 docsbookblog 内容类型;需要退出的站点可配置明确的类型列表,或在页面设置 pager: false
  • / 现在打开完整搜索,\ 打开纯命令模式;命令面板内部的 > 前缀保持不变。
  • params.footer_icpparams.footer_icp_url 被一个行内 Markdown 值 params.footer_center_info 取代;显式空字符串会隐藏中间区域。
  • params.ui.navbar_enabled 默认为 true,可以在全站、section cascade 或单页覆盖。
  • 旧首页数据与 Docsy block 短代码继续兼容;新的 Landing 页面应使用标准分区注册表。

升级到 0.4.0

  1. 固定已签名标签并整理模块图。
  2. 使用过 ICP 页脚参数的站点改用 footer_center_info
  3. 检查 Pager 默认值、/\ 快捷键,以及站点自己的导航栏与页脚覆盖。
  4. 只有对比清楚本地差异后,才删除复制出来的主题 partial。
  5. 构建有代表性的文档、博客、Landing、Book、打印、Markdown、移动端与明暗模式界面。
BASH
hugo mod get github.com/pgsty/[email protected]
hugo mod tidy
hugo --gc --minify

消费站检查清单见本站的 0.4.0 升级指南;主题仓库保留冻结的 PRD 5 迁移参考

验证

已签名标签与发布主题源码指向同一提交。主题 CI 覆盖 Hugo Extended 0.160.1 与 0.164.0、32 个语言包、vendor 资产、运行时单元测试、全部 PRD 4/5/6 契约,以及零警告示例站构建。项目站固定公开标签,并覆盖双语源码、渲染 Markdown、站内链接、替代配置构建、浏览器行为与完整多语言 WCAG AA 矩阵。

有代表性的文档站、门户、Book 与归档站也在关闭 workspace 的情况下,从公开 v0.4.0 模块完成构建。

源码验收、公开标签、消费站固定版本与线上部署是不同的证据门禁。发布这篇注记不能代替站点流水线完成后的线上 URL 冒烟检查。

完整变更集

完整源码差异见 v0.3.0 到 v0.4.0

2 - Oink 0.3.0 — 写作、导航与更轻的页面

Oink 0.3.0 带来增强代码块与代码分组、日常内容组件、嵌套导航与命令面板、 语义化字体预设,并从每个页面移除了 jQuery。

发布日期:2026-08-12 · 主题标签v0.3.0 · 代码仓库pgsty/oink

发布门禁:上面的标签必须能够公开解析,项目站必须固定到该精确标签,并且线上检查必须通过。在此之前,请把当前源码页面视为发布候选材料。

Oink 0.3.0 是围绕写作与导航的一个版本。写页面时,代码块有了现代化的呈现,并补齐了一组每天都会用到的小组件;读页面时,多了嵌套导航与命令面板;而所有页面都实实在在变轻了——jQuery 已被移除。

模块路径、最低 Hugo 版本以及 Hugo-only 的消费者构建方式均未改变。有三项改动可能影响既有站点,详见破坏性变更

版本亮点

代码块与代码分组

普通围栏代码块现在会渲染出完整的代码外壳:可选的文件名、语言标签、由服务端输出而非脚本注入的复制按钮、可选的自动换行,以及长代码的折叠。Hugo 原生的高亮选项——行号、行锚点、hl_lines、制表符宽度——行为完全不变。

复制行为是确定的,而不是靠猜。consoleshell-session 这类会话 lexer 默认只复制命令,不含提示符与输出;其余语言默认复制整块。对于无法区分二者的 lexer, copy=command 会直接报错——静默复制错误内容比构建失败更糟。

code-group 短代码把包管理器、语言、平台这类并列选项组织成同步切换的标签页,并带稳定的 URL hash,因此一个链接可以直接打开读者需要的那个变体。既有的 tabpane 内容继续工作,存储键也保持不变。

完整参数契约见代码块

日常内容组件

在既有的大型组件之外,0.3.0 补上了作者每天真正会用的小组件:badgekbdfieldsfiletreegallery,以及可选启用的 image_zoom。它们全部输出语义化 HTML,其中非交互组件不加载任何 JavaScript,并且每个组件在打印和 Markdown 输出下都有明确定义的呈现方式。

独立的公共 icon 短代码仍然有意推迟:在这套 API 被认真设计出来之前,组件只使用私有的、带白名单的图标注册表来做自身装饰。

各组件契约见组件

顶层菜单在桌面端支持一级下拉,在移动端有对应的折叠面板;父级链接与展开控件分别独立操作,因此父级本身始终可以点击跳转。平铺菜单不受影响。

本地搜索升级为命令面板,具备三种模式:空查询提供快捷入口与页面操作,文本查询返回分组的页面结果,> 前缀则只搜索命令。页面可以提供 search_keywords、正值的 search_boost 以及规范化的排除标记;Lunr 路径与 CJK 子串路径应用同样的加权。

页面操作与面板命令现在走同一套注册表,因此复制文本、在 ChatGPT / Claude 中打开、查阅源码、查阅编辑历史、打印、切换主题、语言或版本,无论从哪里触发行为都一致。助手提示词在激活时解析浏览器 URL,保留实际部署域名、查询参数与片段;历史链接则使用“编辑此页面”的同一仓库路径。助手入口默认关闭,站点必须显式设置 params.ui.page_context_menu.assistant_links: true 才会启用。激活后完整 URL 会离开本站,因此不要在 query 或 fragment 中放置秘密信息。

在可编辑控件之外按 /,可以直接以命令模式打开面板。Cmd/Ctrl-K 仍然是通用入口;这个单字符快捷键不会抢占 input、textarea、select 或 contenteditable 区域中的输入。

侧栏新增图标密度策略 allgroupsnone。兼容默认值仍是 all,起步示例站选用 groups

完整配置面见迁移参考

字体预设

字体选择被收敛到七个语义化的 --td-*-font-family 角色之后,覆盖界面、正文、标题、代码、展示文字、元信息与打印输出。本次提供两个经过校验的预设:technical 保持当前 Oink 外观,system 使用平台字体栈且完全不请求 Oink 品牌字体。既有的 Docsy 与 Bootstrap Sass 字体变量会作为这些角色的初值,因此原有覆盖继续有效。

这只是更大范围设计令牌工作中的字体一层。颜色、表面、圆角、密度与外观预设不在本次发布范围内。

参见字体令牌

更轻的页面

jQuery 已被移除。此前它以阻塞渲染的方式出现在每个页面的 <head> 里——在任何内容之前先加载 87.5 KB——而主题自身的架构原则是只在用到的页面加载对应运行时。文档壳层没有任何地方需要它,而由它驱动的 offline-search.js 早已被命令面板取代。

另外两项开销是被消除而不是被接受的。当前输出格式改为从 page store 读取,不再在每次构建中重复推导数千次;文档壳层配置按语言缓存。在 576 页的构建上,这让模板耗时从 357 毫秒降到 72 毫秒,且生成结果逐字节一致。CJK 搜索改为在建立索引时一次性折叠字段,不再在每次击键时把整个语料重新小写化——800 篇文档的查询从每次击键 3.44 毫秒降到 0.34 毫秒。

在所测项目站快照上,移除 jQuery 与被替代的搜索运行时后,一个典型文档页的 CSS 与 JavaScript 合计减少约 88 KB。后续候选资源变化会使精确总量有所浮动。

正确性与本地化

本版本还修复了几项不太显眼但会影响正确性的缺口。Markdown 页面只在当前语言确实发布 llms.txt 时才链接它,索引也不再把站外菜单外壳当作内容。内部自定义命令在子路径部署下保持正确前缀,共用内容类型则会解析到正确的产品 root。归档版本横幅与 Giscus 回退文本已经本地化;打印与 Markdown 输出无论属性使用何种引号,都能清理只用于 Image Zoom 交互的属性。旧搜索链接也会对查询文本做百分号编码,不再遇到 & 就截断查询。

主题 CI 现在会真正运行浏览器 runtime 测试,不再把 Hugo 能打包脚本当作唯一信号。终端录屏也会等待配置字体加载后再适配播放器,避免使用 fallback 字体计算错误尺寸。

破坏性变更

不再加载 jQuery。 第三方清单此前把它列为界面基础的一部分,因此消费站自己的脚本可能依赖全局 $。主题的任何功能都不需要它。仍然需要的站点,请通过项目 JavaScript 自行打包:

HTML
<!-- layouts/_partials/hooks/head-end.html -->
<script src="{{ (resources.Get "js/jquery.min.js").RelPermalink }}"></script>

移除 static/js/tabpane-persist.js assets/js/code-tabs.js 已接管旧的持久化契约,保留了 td-tp-persist 存储键与 data 属性,因此已写好的标签页内容不受影响。只有直接引用该发布路径的站点需要去掉这个引用。

正文与标题字体角色直接作用于内容。 此前只修改原始 body 或标题选择器的站点,应改为使用对应的 --td-*-font-family 角色或既有的 Sass 变量:

SCSS
// 之前
body {
  font-family: 'My Sans', sans-serif;
}

// Oink 0.3.0
:root {
  --td-body-font-family: 'My Sans', sans-serif;
}

升级到 0.3.0

  1. 检查项目 JavaScript 是否依赖全局 $,如果依赖,请自行打包 jQuery。
  2. 删除对 static/js/tabpane-persist.js 的直接引用;已写好的 tabpane 内容本身不需要改。
  3. 把原始 body 或标题字体覆盖迁移到字体角色。
  4. 决定是否显式启用助手入口;如启用,请检查 URL 是否含敏感 query 或 fragment 数据,并披露第三方边界。
  5. 更新 Hugo 模块并整理模块图。
  6. 构建站点,检查有代表性的文档页、博客页、移动端、打印视图与明暗模式。
BASH
hugo mod get github.com/pgsty/[email protected]
hugo mod tidy
hugo --gc --minify

不需要重写任何 Markdown 内容。既有的围栏代码块、tabpane 内容、平铺菜单、短代码,以及普通的 Docsy 兼容页面都继续照常工作。

兼容性

契约 Oink 0.3.0
Hugo Extended 0.160.1 或更新;未变
模块路径 github.com/pgsty/oink;未变
消费端前端工具链 无;未变
需要的内容迁移
需要的配置迁移 无;助手入口需显式启用
需要的项目 JS 迁移 仅当依赖全局 jQuery

验证

0.3.0 候选版本通过并列的 Oink 项目站进行验证,因此站点构建针对的是候选主题本身,而不只是它最后固定的发布版本。公开发布前,主题侧必须通过完整契约测试套件、在最低与当前 Hugo 版本上零警告构建示例站、两种字体预设,以及浏览器运行时单元测试。站点侧必须通过格式化、中英文页面配对与稳定标题 ID、渲染后的 Markdown 与站内链接、Hugo 模块 fixture、备用配置构建、Markdown 与 favicon golden、响应式与组件浏览器行为,以及 axe 无障碍检查。标签、公共模块解析、站点版本钉住与线上冒烟仍是批准后的独立门禁。

完整变更集

完整源码差异见 v0.2.1 到 v0.3.0

3 - Oink 0.2.0:更丰富的内容与更精致的呈现

Oink 0.2.0 新增可组合首页分区、跟随颜色模式的图片、字标、可导航组件面板与 steps 短代码,并改进终端录像与版本发布内容的呈现体验。

发布日期:2026-08-10 · 主题标签v0.2.0 · 代码仓库pgsty/oink

Oink 0.2.0 聚焦读者与作者最常接触的表面:首页、品牌呈现、博客发现、分区索引与操作指南。Oink 项目站点也同步成为更清晰的双语参考,用于说明主题的当前契约。

模块路径、最低 Hugo 版本以及消费端仅依赖 Hugo 的构建方式均保持不变。唯一可能影响现有站点的配置改名,详见破坏性变更

发布亮点

首页与品牌

首页现在可以通过有序 sections 列表组合 12 种内置分区。字符串会选择同名数据;映射则可以通过不同的 key 重用呈现方式、在不删除数据的前提下禁用区块,或直接携带短小的一次性内容。没有 sections 的站点保留 0.1.x 首页顺序,因此显式组合是新增能力,而不是必需迁移。

数据驱动的首页现在可以在 Hero 文案旁放置响应式图片。作者可以配置一张通用图片,也可以分别提供浅色与深色图片;如果图片本身包含信息,还可以提供有意义的替代文字。布局会从桌面端的双栏 Hero 自动调整为紧凑的移动端呈现,无需站点覆盖模板。

Oink 还新增 params.wordmark。配置字标后,首页导航、文档页头、抽屉和页脚会统一使用它;只配置 params.logo 的站点继续使用原来的“图标 + 标题”样式。

首页组件面板现在可以成为真正的导航区域。条目支持链接、可选的外部链接行为、紧凑样式,以及一至四列布局。纯装饰面板仍保持不可交互,兼容 0.1.0 的既有契约。

完整数据结构参见首页与页脚

博客与版本发布

博客列表现在把图片与摘要作为一个整体进行响应式布局。特色图片不再把文字挤出平板宽度的容器,摘要可以安全断开机器生成的长标识符;没有图片的文章则会完整使用文本宽度。署名行中的分区名称现在可以点击,RSS 入口也会进入与其他页面操作一致的侧栏区域。

分类与标签使用和 TOC、页面操作相同的折叠区规则。在宽侧栏与移动抽屉中,条目都显示为易于扫描的行,并附带数量徽章。分区索引更加简洁,描述拥有更多空间;最后修改信息移动到子页面索引之后,不再打断页面导语。

Oink 项目站点现在把上游 Docsy 历史、Oink 工程文章与版本化 Oink 发布注记拆分为三个独立的双语分区。读者可以直接找到版本报告,同时不会把继承的 Docsy 文章误认为 Oink 发布。

内容组件

0.2.0 新增 Markdown 优先的 steps 短代码。直接子标题会成为自动编号的步骤,并由引导线连接;整体移动、新增或删除步骤时,无需手工维护数字。如果某个辅助标题不应占用编号,可以添加 class="no-step-marker"

Asciinema 录像新增精致的终端边框、标题栏、紧凑控制栏与跟随颜色模式的样式,并把字体契约直接传入播放器。这样既避免播放器回退到不同的终端字体,也能让录像在两种主题下保持响应式与清晰可读。

ECharts 回调代码块继续采用既有的可信作者模型:回调属于可执行内容,必须像内联 HTML 或其他自定义集成一样接受评审。渲染器不再为每个已评审的回调块重复输出警告。

steps 契约参见短代码,完整组件模型参见 Oink 组件

文档与测试

独立项目站点同步完成一轮文档更新:

  • 扩充中英文首页与组件示例。
  • 记录全部 12 种可组合首页分区,并在项目首页中使用适合的分区。
  • 添加真实的 Asciinema 安装录像与独立的 giscus 指南。
  • 把示例移入文档树,并删除过时的社区入口与仅供维护者使用的页面。
  • 将 Hugo 配置合并到根目录 hugo.yml,移除旧的 Netlify 专用工具。
  • 让浏览器测试与 live reload 隔离,并继续把响应式、无障碍、翻译、渲染后 Markdown 与链接检查纳入发布关卡。

这些都是项目站点改动,不会给主题消费端增加新的运行时依赖。

破坏性变更

0.2.0 将继承的特色图片设置从 default_featured_image 改名为 default_featured。请更新页面、分区 cascade 与站点级配置中的旧键:

YAML
# Oink 0.1.x
default_featured_image: /images/blog-card.webp

# Oink 0.2.0
default_featured: /images/blog-card.webp

主题内置的隐式占位图也被移除。如果文章没有图片、匹配的页面资源或显式 default_featured,Oink 现在会渲染干净的纯文本列表项。如果整个分区需要统一的视觉标识,请把 default_featured 指向站点自有图片;如果希望明确关闭默认图片,可以将其设为 false

旧配置键没有兼容别名。这是 0.2.0 唯一必需的配置迁移。

升级到 0.2.0

  1. 将所有 default_featured_image 设置替换为 default_featured
  2. 更新 Hugo 模块并整理模块依赖图。
  3. 构建站点,并检查具有代表性的首页、博客、文档、移动端与颜色模式页面。
BASH
hugo mod get github.com/pgsty/[email protected]
hugo mod tidy
hugo --gc --minify

本版本不要求重写 Markdown 内容。现有首页分区、仅配置图标的品牌样式、短代码以及与 Docsy 兼容的普通页面均可继续使用。

兼容性

契约 Oink 0.2.0
Hugo Extended 0.160.1 或更高版本;未改变
模块路径 github.com/pgsty/oink;未改变
消费端前端工具链 无;未改变
必需内容迁移
必需配置迁移 default_featured_image 改名

验证范围

0.2.0 候选版本通过同级目录中的 Oink 项目站点接受验证,因此站点构建使用的是候选主题,而不只是上一个固定版本。发布关卡覆盖格式、中英文页面配对与稳定标题 ID、渲染后 Markdown 与内部链接、Hugo 模块 fixture、响应式浏览器行为,以及 axe 无障碍检查。

完整变更

查看从 v0.1.0 到 v0.2.0 的完整源码差异

4 - Oink 0.1.0:稳定的本地优先基础

Oink 的首个稳定版本将实现预览完善为可直接使用的 Hugo 模块,提供响应式页面外壳、多语言基础设施、本地优先组件与更扎实的无障碍基线。

发布日期:2026-08-10 · 主题标签v0.1.0 · 代码仓库pgsty/oink

Oink 0.1.0 是 Oink 主题的首个稳定版本。它包含 0.0.1 实现预览以及之后的稳定化工作:统一的文档页面外壳、消费端仅依赖 Hugo 的构建、本地优先的浏览器资源、基于 Hugo 原生对象的多语言行为,以及可复用的内容组件。

本版本继续使用模块路径 github.com/pgsty/oink,要求 Hugo Extended 0.160.1 或更高版本。消费站点在构建和提供主题自带功能时,不需要 Node.js、npm、PostCSS、Autoprefixer 或 CDN。

发布亮点

本地优先的主题基础

Oink 随主题提供自有的样式、字体、图标、本地搜索、图表、API 文档运行时与内容组件运行时。可选资源只在页面实际使用时加载;可分发仓库本身是一个根 Hugo 模块,不再内嵌项目站点或前端工作区。

本版本还确立了核心产品契约:

  • Hugo 的语言与翻译对象统一驱动语言路由、切换、hreflang、书写方向与 locale 元数据。
  • 主题支持单语言、多语言与 RTL 站点,不依赖 PGSTY 专属域名假设。
  • Asciinema、ECharts、Infographic、图表、API 参考、标签页、卡片等可复用组件,共享本地且按页面加载的运行时。
  • 通过可选的 giscus 集成支持 GitHub Discussions 评论;站点未启用时不会加载任何外部评论脚本。
  • 继续支持与 Docsy 兼容的内容组织、菜单、分类法、打印输出与扩展钩子。

响应式页面外壳

文档、博客与 API 参考布局现在共用一套响应式外壳。桌面导航、可调整宽度的侧栏、目录(TOC)、页面操作、分类法、版本选择器和页脚采用一致的视觉与交互规则。

在平板与手机上,Oink 会把 TOC、页面操作、分类与标签移动到导航抽屉中,而不是渲染第二份副本。这样可以保持 ID唯一,并确保滚动跟踪、折叠区与复制操作在视口动态变化时仍能正常工作。语言与颜色模式控件在所有宽度下均可访问;颜色选择器明确提供“自动”“浅色”和“深色”三种偏好。

导航条目使用一致的图标,移动菜单会限制键盘焦点,页脚各列完整利用可用宽度,紧凑的页面操作菜单也不再与右侧栏重复。复制 Markdown、查看 Markdown、编辑、问题反馈和打印操作现在共用一套实现。

发布与内容呈现

语法高亮现在使用基于 class 的 Chroma 输出,并协调浅色与深色调色板。即使 JavaScript 尚未初始化颜色模式,代码仍然清晰可读;站点也可以通过 params.highlight_classes: false 选择退出。

博客列表新增确定性的特色图片解析顺序。在 0.1.0 中,它依次检查 front matter 中的 images、匹配的页面资源、继承的 default_featured_image、站点参数,最后使用主题占位图。现代博客列表与兼容的旧 partial 共用这一解析器。

新的墨迹标志与占位图能够正确处理“系统主题 × 站点所选主题”的四种组合。Oink会同时明确声明浅色与深色页面实际使用的 color-scheme,因此用户在站点中的显式选择会覆盖操作系统偏好。

无障碍与正确性

0.1.0 修复了桌面端、移动端、打印视图与辅助技术评审中发现的问题:

  • 修正标题顺序、landmark 名称、任务列表标签与打印列表语义。
  • 确保博客列表在平板宽度下不会溢出视口,并允许长 URL 或标识符安全换行。
  • 对 GitHub issue 链接中的标题与 URL 进行正确编码。
  • 本地化 404 页面,并移除无障碍名称中硬编码的标点。
  • 为 iframe 嵌入补充标题与延迟加载,只注册一次尺寸调整逻辑,并安全处理跨域 frame。
  • 每页只输出一个 contentinfo landmark,同时保留消费站点可直接使用的主题扩展 partial 与可选 SCSS 入口。

兼容性审计删除了确实不可达的旧页面外壳代码,也恢复了下游站点可以直接导入的文件。可达性判断会检查消费站点的布局与 _styles_project.scss,而不只检查主题自身的入口。

升级到 0.1.0

更新 Hugo 模块并重新构建站点:

BASH
hugo mod get github.com/pgsty/[email protected]
hugo mod tidy
hugo --gc --minify

本版本不要求迁移内容。如果站点直接导入 Oink partial 或 SCSS,请在升级过程中构建该站点,让其自定义表面与主题一起接受检查。

兼容性

契约 Oink 0.1.0
Hugo Extended 0.160.1 或更高版本
模块路径 github.com/pgsty/oink
消费端前端工具链
默认浏览器依赖 本地优先
主要内容模型 与 Docsy 兼容的 Markdown 与 front matter

验证范围

0.1.0 最终候选版本在主题 fixture 与 Oink 项目站点上接受了七种视口宽度的完整检查。记录结果中没有控制台错误、请求失败、水平溢出或 axe 违规。独立 fixture 还覆盖最低与当前 Hugo 版本、LTR 与 RTL 语言、子路径、打印输出、重复组件实例,以及网络隔离环境中的消费端构建。

完整变更

请参阅 v0.1.0 源码快照