<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Oink 发布注记 on OINK</title>
    <link>https://oink.pgsty.com/zh/blog/release/</link>
    <description>Recent content in Oink 发布注记 on OINK</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    
    
    
      <lastBuildDate>Fri, 14 Aug 2026 21:56:46 +0800</lastBuildDate>
    
    
      <atom:link href="https://oink.pgsty.com/zh/blog/release/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>Oink 0.4.0 — 面向完整发布流程的场景组件体系</title>
        <link>https://oink.pgsty.com/zh/blog/release/0.4.0/</link>
        <pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/blog/release/0.4.0/</guid>
        <description>&lt;p&gt;&lt;strong&gt;发布日期&lt;/strong&gt;：2026-08-14 · &lt;strong&gt;已签名主题标签&lt;/strong&gt;：&#xA;&lt;a href=&#34;https://github.com/pgsty/oink/tree/v0.4.0&#34;&gt;v0.4.0&lt;/a&gt; · &lt;strong&gt;代码仓库&lt;/strong&gt;：&#xA;&lt;a href=&#34;https://github.com/pgsty/oink&#34;&gt;pgsty/oink&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Oink 0.4.0 完整交付场景组件体系。原始设计将 Reading &amp;amp;&#xA;Release、Landing 与 Book 分别放在 0.4、0.5、0.6 三个里程碑中；公开版本将三条轨道合并到一个已签名的&#xA;&lt;code&gt;v0.4.0&lt;/code&gt; 标签，让消费站接入一套连贯契约，而不是一串彼此依赖的预览版本。&lt;/p&gt;&#xA;&lt;p&gt;本版本继续保持本地优先：消费站仍然只需 Hugo&#xA;Extended 与 Go，不需要 Node.js、浏览器端 API 或 CDN。所有交互都采用渐进增强；HTML、打印、Markdown 与 RSS 输出会保留理解对应界面所需的完整内容。&lt;/p&gt;&#xA;&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.4.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-08-14&#34;&gt;2026-08-14&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/oink/releases/tag/v0.4.0&#34;&gt;查看发布&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/oink/archive/refs/tags/v0.4.0.tar.gz&#34;&gt;源码 · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/oink/archive/refs/tags/v0.4.0.zip&#34;&gt;源码 · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/oink/compare/v0.3.0...v0.4.0&#34;&gt;比较变更&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/oink&#34;&gt;pgsty/oink&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;release-highlights&#34;&gt;版本亮点&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#release-highlights&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;reading-and-release&#34;&gt;阅读与发布&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#reading-and-release&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;文档、Book 与博客页面现在拥有连续阅读 Pager，其顺序来自读者在侧栏看到的同一棵扁平导航树。上一页和下一页也会作为同源&#xA;&lt;code&gt;rel&lt;/code&gt;&#xA;元数据写入文档头。显式导航数据、纯链接条目、侧栏分组和博客时间顺序仍保留各自语义，不会意外变成阅读目的地。&lt;/p&gt;&#xA;&lt;p&gt;数学公式可以通过 Goldmark&#xA;passthrough 使用主题内置的本地 KaTeX 渲染器。暂时无法启用 passthrough 的站点，可以使用严格、无参数的&#xA;&lt;code&gt;eq&lt;/code&gt; 逃生舱渲染块公式；只有显式提供 &lt;code&gt;num&lt;/code&gt;&#xA;时，同一短代码才进入 Book 的编号公式模式。&lt;/p&gt;&#xA;&lt;p&gt;发布页面可以从本地 front&#xA;matter 渲染发布事实、发布卡片、校验和与资产清单，无需浏览器查询 GitHub。经过验证的&#xA;&lt;code&gt;data/download/&amp;lt;key&amp;gt;.yaml&lt;/code&gt; 模型同时供 &lt;code&gt;download&lt;/code&gt;&#xA;短代码与 Landing 下载分区使用，区分滚动渠道、固定版本渠道与明确的待发布状态。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Oink 0.3.0 — 写作、导航与更轻的页面</title>
        <link>https://oink.pgsty.com/zh/blog/release/0.3.0/</link>
        <pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/blog/release/0.3.0/</guid>
        <description>&lt;p&gt;&lt;strong&gt;发布日期&lt;/strong&gt;：2026-08-12 · &lt;strong&gt;主题标签&lt;/strong&gt;：&#xA;&lt;a href=&#34;https://github.com/pgsty/oink/tree/v0.3.0&#34;&gt;v0.3.0&lt;/a&gt; · &lt;strong&gt;代码仓库&lt;/strong&gt;：&#xA;&lt;a href=&#34;https://github.com/pgsty/oink&#34;&gt;pgsty/oink&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;发布门禁&lt;/strong&gt;：上面的标签必须能够公开解析，项目站必须固定到该精确标签，并且线上检查必须通过。在此之前，请把当前源码页面视为发布候选材料。&lt;/p&gt;&#xA;&lt;p&gt;Oink&#xA;0.3.0 是围绕写作与导航的一个版本。写页面时，代码块有了现代化的呈现，并补齐了一组每天都会用到的小组件；读页面时，多了嵌套导航与命令面板；而所有页面都实实在在变轻了——jQuery 已被移除。&lt;/p&gt;&#xA;&lt;p&gt;模块路径、最低 Hugo 版本以及 Hugo-only 的消费者构建方式均未改变。有三项改动可能影响既有站点，详见&lt;a href=&#34;https://oink.pgsty.com/zh/blog/release/0.3.0/#breaking-changes&#34;&gt;破坏性变更&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;release-highlights&#34;&gt;版本亮点&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#release-highlights&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;code-blocks-and-code-groups&#34;&gt;代码块与代码分组&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#code-blocks-and-code-groups&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;普通围栏代码块现在会渲染出完整的代码外壳：可选的文件名、语言标签、由服务端输出而非脚本注入的复制按钮、可选的自动换行，以及长代码的折叠。Hugo 原生的高亮选项——行号、行锚点、&lt;code&gt;hl_lines&lt;/code&gt;、制表符宽度——行为完全不变。&lt;/p&gt;&#xA;&lt;p&gt;复制行为是确定的，而不是靠猜。&lt;code&gt;console&lt;/code&gt;、&lt;code&gt;shell-session&lt;/code&gt;&#xA;这类会话 lexer 默认只复制命令，不含提示符与输出；其余语言默认复制整块。对于无法区分二者的 lexer，&#xA;&lt;code&gt;copy=command&lt;/code&gt; 会直接报错——静默复制错误内容比构建失败更糟。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;code-group&lt;/code&gt;&#xA;短代码把包管理器、语言、平台这类并列选项组织成同步切换的标签页，并带稳定的 URL&#xA;hash，因此一个链接可以直接打开读者需要的那个变体。既有的 &lt;code&gt;tabpane&lt;/code&gt;&#xA;内容继续工作，存储键也保持不变。&lt;/p&gt;&#xA;&lt;p&gt;完整参数契约见&lt;a href=&#34;https://oink.pgsty.com/zh/docs/components/code-blocks/&#34;&gt;代码块&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;everyday-content-primitives&#34;&gt;日常内容组件&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#everyday-content-primitives&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;在既有的大型组件之外，0.3.0 补上了作者每天真正会用的小组件：&lt;code&gt;badge&lt;/code&gt;、&lt;code&gt;kbd&lt;/code&gt;、&#xA;&lt;code&gt;fields&lt;/code&gt;、&lt;code&gt;filetree&lt;/code&gt;、&lt;code&gt;gallery&lt;/code&gt;，以及可选启用的&#xA;&lt;code&gt;image_zoom&lt;/code&gt;。它们全部输出语义化 HTML，其中非交互组件不加载任何 JavaScript，并且每个组件在打印和 Markdown 输出下都有明确定义的呈现方式。&lt;/p&gt;&#xA;&lt;p&gt;独立的公共 &lt;code&gt;icon&lt;/code&gt;&#xA;短代码仍然有意推迟：在这套 API 被认真设计出来之前，组件只使用私有的、带白名单的图标注册表来做自身装饰。&lt;/p&gt;&#xA;&lt;p&gt;各组件契约见&lt;a href=&#34;https://oink.pgsty.com/zh/docs/components/&#34;&gt;组件&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;navigation-and-command-palette&#34;&gt;导航与命令面板&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#navigation-and-command-palette&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;顶层菜单在桌面端支持一级下拉，在移动端有对应的折叠面板；父级链接与展开控件分别独立操作，因此父级本身始终可以点击跳转。平铺菜单不受影响。&lt;/p&gt;&#xA;&lt;p&gt;本地搜索升级为命令面板，具备三种模式：空查询提供快捷入口与页面操作，文本查询返回分组的页面结果，&lt;code&gt;&amp;gt;&lt;/code&gt;&#xA;前缀则只搜索命令。页面可以提供 &lt;code&gt;search_keywords&lt;/code&gt;、正值的 &lt;code&gt;search_boost&lt;/code&gt;&#xA;以及规范化的排除标记；Lunr 路径与 CJK 子串路径应用同样的加权。&lt;/p&gt;&#xA;&lt;p&gt;页面操作与面板命令现在走同一套注册表，因此复制文本、在 ChatGPT /&#xA;Claude 中打开、查阅源码、查阅编辑历史、打印、切换主题、语言或版本，无论从哪里触发行为都一致。助手提示词在激活时解析浏览器 URL，保留实际部署域名、查询参数与片段；历史链接则使用“编辑此页面”的同一仓库路径。助手入口默认关闭，站点必须显式设置&#xA;&lt;code&gt;params.ui.page_context_menu.assistant_links: true&lt;/code&gt;&#xA;才会启用。激活后完整 URL 会离开本站，因此不要在 query 或 fragment 中放置秘密信息。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Oink 0.2.0：更丰富的内容与更精致的呈现</title>
        <link>https://oink.pgsty.com/zh/blog/release/0.2.0/</link>
        <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/blog/release/0.2.0/</guid>
        <description>&lt;p&gt;&lt;strong&gt;发布日期&lt;/strong&gt;：2026-08-10 · &lt;strong&gt;主题标签&lt;/strong&gt;：&#xA;&lt;a href=&#34;https://github.com/pgsty/oink/tree/v0.2.0&#34;&gt;v0.2.0&lt;/a&gt; · &lt;strong&gt;代码仓库&lt;/strong&gt;：&#xA;&lt;a href=&#34;https://github.com/pgsty/oink&#34;&gt;pgsty/oink&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Oink&#xA;0.2.0 聚焦读者与作者最常接触的表面：首页、品牌呈现、博客发现、分区索引与操作指南。Oink 项目站点也同步成为更清晰的双语参考，用于说明主题的当前契约。&lt;/p&gt;&#xA;&lt;p&gt;模块路径、最低 Hugo 版本以及消费端仅依赖 Hugo 的构建方式均保持不变。唯一可能影响现有站点的配置改名，详见&lt;a href=&#34;https://oink.pgsty.com/zh/blog/release/0.2.0/#breaking-change&#34;&gt;破坏性变更&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;release-highlights&#34;&gt;发布亮点&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#release-highlights&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;homepage-and-brand&#34;&gt;首页与品牌&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#homepage-and-brand&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;首页现在可以通过有序 &lt;code&gt;sections&lt;/code&gt;&#xA;列表组合 12 种内置分区。字符串会选择同名数据；映射则可以通过不同的 &lt;code&gt;key&lt;/code&gt;&#xA;重用呈现方式、在不删除数据的前提下禁用区块，或直接携带短小的一次性内容。没有&#xA;&lt;code&gt;sections&lt;/code&gt; 的站点保留 0.1.x 首页顺序，因此显式组合是新增能力，而不是必需迁移。&lt;/p&gt;&#xA;&lt;p&gt;数据驱动的首页现在可以在 Hero 文案旁放置响应式图片。作者可以配置一张通用图片，也可以分别提供浅色与深色图片；如果图片本身包含信息，还可以提供有意义的替代文字。布局会从桌面端的双栏 Hero 自动调整为紧凑的移动端呈现，无需站点覆盖模板。&lt;/p&gt;&#xA;&lt;p&gt;Oink 还新增&#xA;&lt;code&gt;params.wordmark&lt;/code&gt;。配置字标后，首页导航、文档页头、抽屉和页脚会统一使用它；只配置&#xA;&lt;code&gt;params.logo&lt;/code&gt; 的站点继续使用原来的“图标 + 标题”样式。&lt;/p&gt;&#xA;&lt;p&gt;首页组件面板现在可以成为真正的导航区域。条目支持链接、可选的外部链接行为、紧凑样式，以及一至四列布局。纯装饰面板仍保持不可交互，兼容 0.1.0 的既有契约。&lt;/p&gt;&#xA;&lt;p&gt;完整数据结构参见&lt;a href=&#34;https://oink.pgsty.com/zh/docs/configure/overview/#homepage-and-footer&#34;&gt;首页与页脚&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;blog-and-release-publishing&#34;&gt;博客与版本发布&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#blog-and-release-publishing&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;博客列表现在把图片与摘要作为一个整体进行响应式布局。特色图片不再把文字挤出平板宽度的容器，摘要可以安全断开机器生成的长标识符；没有图片的文章则会完整使用文本宽度。署名行中的分区名称现在可以点击，RSS 入口也会进入与其他页面操作一致的侧栏区域。&lt;/p&gt;&#xA;&lt;p&gt;分类与标签使用和 TOC、页面操作相同的折叠区规则。在宽侧栏与移动抽屉中，条目都显示为易于扫描的行，并附带数量徽章。分区索引更加简洁，描述拥有更多空间；最后修改信息移动到子页面索引之后，不再打断页面导语。&lt;/p&gt;&#xA;&lt;p&gt;Oink 项目站点现在把上游 Docsy 历史、Oink 工程文章与版本化 Oink 发布注记拆分为三个独立的双语分区。读者可以直接找到版本报告，同时不会把继承的 Docsy 文章误认为 Oink 发布。&lt;/p&gt;&#xA;&lt;h3 id=&#34;content-components&#34;&gt;内容组件&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#content-components&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;0.2.0 新增 Markdown 优先的 &lt;code&gt;steps&lt;/code&gt;&#xA;短代码。直接子标题会成为自动编号的步骤，并由引导线连接；整体移动、新增或删除步骤时，无需手工维护数字。如果某个辅助标题不应占用编号，可以添加&#xA;&lt;code&gt;class=&amp;quot;no-step-marker&amp;quot;&lt;/code&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Oink 0.1.0：稳定的本地优先基础</title>
        <link>https://oink.pgsty.com/zh/blog/release/0.1.0/</link>
        <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/blog/release/0.1.0/</guid>
        <description>&lt;p&gt;&lt;strong&gt;发布日期&lt;/strong&gt;：2026-08-10 · &lt;strong&gt;主题标签&lt;/strong&gt;：&#xA;&lt;a href=&#34;https://github.com/pgsty/oink/tree/v0.1.0&#34;&gt;v0.1.0&lt;/a&gt; · &lt;strong&gt;代码仓库&lt;/strong&gt;：&#xA;&lt;a href=&#34;https://github.com/pgsty/oink&#34;&gt;pgsty/oink&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Oink&#xA;0.1.0 是 Oink 主题的首个稳定版本。它包含 0.0.1 实现预览以及之后的稳定化工作：统一的文档页面外壳、消费端仅依赖 Hugo 的构建、本地优先的浏览器资源、基于 Hugo 原生对象的多语言行为，以及可复用的内容组件。&lt;/p&gt;&#xA;&lt;p&gt;本版本继续使用模块路径 &lt;code&gt;github.com/pgsty/oink&lt;/code&gt;，要求 Hugo Extended&#xA;0.160.1 或更高版本。消费站点在构建和提供主题自带功能时，不需要 Node.js、npm、PostCSS、Autoprefixer 或 CDN。&lt;/p&gt;&#xA;&lt;h2 id=&#34;release-highlights&#34;&gt;发布亮点&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#release-highlights&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;local-first-foundation&#34;&gt;本地优先的主题基础&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#local-first-foundation&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Oink 随主题提供自有的样式、字体、图标、本地搜索、图表、API 文档运行时与内容组件运行时。可选资源只在页面实际使用时加载；可分发仓库本身是一个根 Hugo 模块，不再内嵌项目站点或前端工作区。&lt;/p&gt;&#xA;&lt;p&gt;本版本还确立了核心产品契约：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Hugo 的语言与翻译对象统一驱动语言路由、切换、&lt;code&gt;hreflang&lt;/code&gt;、书写方向与 locale 元数据。&lt;/li&gt;&#xA;&lt;li&gt;主题支持单语言、多语言与 RTL 站点，不依赖 PGSTY 专属域名假设。&lt;/li&gt;&#xA;&lt;li&gt;Asciinema、ECharts、Infographic、图表、API 参考、标签页、卡片等可复用组件，共享本地且按页面加载的运行时。&lt;/li&gt;&#xA;&lt;li&gt;通过可选的 giscus 集成支持 GitHub&#xA;Discussions 评论；站点未启用时不会加载任何外部评论脚本。&lt;/li&gt;&#xA;&lt;li&gt;继续支持与 Docsy 兼容的内容组织、菜单、分类法、打印输出与扩展钩子。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;responsive-shell&#34;&gt;响应式页面外壳&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#responsive-shell&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;文档、博客与 API 参考布局现在共用一套响应式外壳。桌面导航、可调整宽度的侧栏、目录（TOC）、页面操作、分类法、版本选择器和页脚采用一致的视觉与交互规则。&lt;/p&gt;&#xA;&lt;p&gt;在平板与手机上，Oink 会把 TOC、页面操作、分类与标签移动到导航抽屉中，而不是渲染第二份副本。这样可以保持 ID唯一，并确保滚动跟踪、折叠区与复制操作在视口动态变化时仍能正常工作。语言与颜色模式控件在所有宽度下均可访问；颜色选择器明确提供“自动”“浅色”和“深色”三种偏好。&lt;/p&gt;&#xA;&lt;p&gt;导航条目使用一致的图标，移动菜单会限制键盘焦点，页脚各列完整利用可用宽度，紧凑的页面操作菜单也不再与右侧栏重复。复制 Markdown、查看 Markdown、编辑、问题反馈和打印操作现在共用一套实现。&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
