<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>关于 on OINK</title>
    <link>https://oink.pgsty.com/zh/categories/%E5%85%B3%E4%BA%8E/</link>
    <description>Recent content in 关于 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/categories/%E5%85%B3%E4%BA%8E/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>示例站点</title>
        <link>https://oink.pgsty.com/zh/docs/about/examples/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/docs/about/examples/</guid>
        <description>&lt;p&gt;OINK 提供三种不同规模的示例。请选用足以回答当前问题的最小示例：完整项目站适合回归验证，但它有意包含比普通消费站点更多的内容。&lt;/p&gt;&#xA;&lt;h2 id=&#34;choose-an-example&#34;&gt;选择合适的示例&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#choose-an-example&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;示例&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;最适合验证的内容&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;仓库或指南&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;双语项目站&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;生产规模的配置与质量检查&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;pgsty/oink.pgsty.com&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;主题 &lt;code&gt;exampleSite/&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;落地页组合与主题 checkout&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;pgsty/oink/exampleSite&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;最小双语消费站点&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;从零新建文档站&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://oink.pgsty.com/zh/docs/tutorial/create-site/&#34;&gt;从零新建站点&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;bilingual-project-site&#34;&gt;双语项目站&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#bilingual-project-site&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/pgsty/oink.pgsty.com&#34;&gt;&lt;code&gt;pgsty/oink.pgsty.com&lt;/code&gt;&lt;/a&gt;&#xA;是你正在阅读的完整文档与回归站。它把英文和简体中文内容并列保存，在 &lt;code&gt;go.mod&lt;/code&gt;&#xA;中固定已发布的 Oink 模块，并覆盖文档、博客、搜索、打印、富内容、元数据与响应式导航。&lt;/p&gt;&#xA;&lt;p&gt;使用 Hugo 克隆并预览公开模块路径：&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d7e9a0be-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-language=&#34;sh&#34; data-line-count=&#34;3&#34;&gt;&lt;div class=&#34;td-code__utilities td-code__utilities--compact&#34;&gt;&#xA;  &lt;span class=&#34;td-code__language&#34;&gt;BASH&lt;/span&gt;&#xA;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-d7e9a0be-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/pgsty/oink.pgsty.com.git&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; oink.pgsty.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo server --disableFastRender&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;创建生产构建产物：&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d7e9a0be-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-language=&#34;sh&#34; data-line-count=&#34;1&#34;&gt;&lt;div class=&#34;td-code__utilities td-code__utilities--compact&#34;&gt;&#xA;  &lt;span class=&#34;td-code__language&#34;&gt;BASH&lt;/span&gt;&#xA;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-d7e9a0be-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo --gc --minify&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Node.js 与 npm 只是本仓库执行格式、翻译、链接、浏览器和回归检查时的维护依赖，并不是 Oink 消费端的构建要求。&lt;/p&gt;&#xA;&lt;h2 id=&#34;theme-example-site&#34;&gt;主题示例站&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#theme-example-site&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;主题仓库包含一个刻意保持精简的&#xA;&lt;code&gt;exampleSite/&lt;/code&gt;。它直接使用当前 checkout 中的主题，演示可组合落地页，不会引入项目站的文档内容或 npm&#xA;workspace。&lt;/p&gt;</description>
      </item>
    <item>
        <title>本地优先运行</title>
        <link>https://oink.pgsty.com/zh/docs/about/local-first/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/docs/about/local-first/</guid>
        <description>&lt;p&gt;OINK 的本地优先原则很简单：由主题提供的功能，不得暗中依赖公共 CDN、构建期下载或未经配置的公共服务。完整发行包能够在网络隔离环境中构建，其核心页面也能在该环境中浏览。&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-local-first-covers&#34;&gt;本地优先覆盖的范围&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#what-local-first-covers&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;主题会从生成后的站点提供以下依赖：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;能力&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;本地交付方式&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;页面外壳与响应式界面&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Bootstrap 与 OINK CSS/JavaScript&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;图标与字体&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Font Awesome、Open Sans、Chakra Petch、IBM Plex Mono&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;搜索&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Lunr、CJK 子串回退与按语言生成的索引&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;图表与公式&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Mermaid、KaTeX 与 Markmap&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;API 文档&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Swagger UI 与 Redoc&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;富内容&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Asciinema、ECharts、Infographic 与轮播运行时&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;这些资源提交在 &lt;code&gt;assets/&lt;/code&gt; 或 &lt;code&gt;static/&lt;/code&gt; 中。Hugo 会按照站点 &lt;code&gt;baseURL&lt;/code&gt;&#xA;发布它们，部署在子路径时也不例外。&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-local-first-does-not-cover&#34;&gt;本地优先不覆盖的范围&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#what-local-first-does-not-cover&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;OINK 无法让作者任意添加的内容自动离线。以下项目仍然是显式网络选择：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;外部链接、远程图片、视频、iframe 与 API 规范；&lt;/li&gt;&#xA;&lt;li&gt;Algolia、Google CSE 等托管搜索；&lt;/li&gt;&#xA;&lt;li&gt;分析、评论、身份提供商与其他 SaaS 集成；&lt;/li&gt;&#xA;&lt;li&gt;作者主动选择远程渲染器时的 PlantUML 或 Diagrams.net。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;使用这些功能的页面仍然可以是有效页面，但站点不应再宣称该页面能够完全离线使用。&lt;/p&gt;&#xA;&lt;h2 id=&#34;service-backed-diagrams&#34;&gt;依赖服务的图表&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#service-backed-diagrams&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;PlantUML 与 Diagrams.net 不同于纯浏览器库：其常规工作流依赖渲染或编辑服务。因此 OINK 不提供隐含的公共端点。&lt;/p&gt;</description>
      </item>
    <item>
        <title>架构</title>
        <link>https://oink.pgsty.com/zh/docs/about/architecture/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/docs/about/architecture/</guid>
        <description>&lt;p&gt;Oink 是一款直接运行于 Hugo 的主题，而不是应用服务器，也不是套在 Docsy 外面的运行时包装层。Hugo 在构建阶段解析内容、配置、布局与资源，再生成可由普通文件托管服务发布的静态站点。&lt;/p&gt;&#xA;&lt;h2 id=&#34;system-boundary&#34;&gt;系统边界&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#system-boundary&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;flowchart LR&#xA;  C[站点内容] --&amp;gt; H[Hugo Extended]&#xA;  G[Hugo 配置] --&amp;gt; H&#xA;  T[Oink Hugo Module] --&amp;gt; H&#xA;  V[已提交的第三方资源] --&amp;gt; T&#xA;  H --&amp;gt; P[静态 public 目录]&#xA;  P --&amp;gt; B[浏览器]&lt;/pre&gt;&#xA;&lt;p&gt;消费端边界始于站点与已经解析的主题模块，止于 Hugo 生成的静态文件。在这条路径中，不需要 JavaScript 包管理器、CSS 后处理器可执行文件或远程资源下载。&lt;/p&gt;&#xA;&lt;p&gt;交互功能仍会在浏览器中运行 JavaScript。“仅依赖 Hugo”描述的是构建依赖，并不意味着用户界面完全没有 JavaScript。&lt;/p&gt;&#xA;&lt;h2 id=&#34;repository-boundary&#34;&gt;仓库边界&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#repository-boundary&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;theme-repository&#34;&gt;主题仓库&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#theme-repository&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;github.com/pgsty/oink&lt;/code&gt; 是公开 Hugo&#xA;Module。仓库根目录包含标准布局、partial、短代码、SCSS、JavaScript、字体、图标、浏览器运行时、翻译资源、&lt;code&gt;go.mod&lt;/code&gt;&#xA;与 &lt;code&gt;hugo.yaml&lt;/code&gt;。&lt;code&gt;VENDOR.json&lt;/code&gt; 记录随附的第三方资源。&lt;/p&gt;&#xA;&lt;p&gt;该仓库不包含项目网站或 npm&#xA;workspace。&lt;code&gt;README.md&lt;/code&gt;、&lt;code&gt;LICENSE&lt;/code&gt;、&lt;code&gt;NOTICE&lt;/code&gt;、&lt;code&gt;theme.toml&lt;/code&gt;&#xA;与 vendor 清单等根元数据，是发布和标注主题来源所必需的内容。&lt;/p&gt;&#xA;&lt;h3 id=&#34;project-site-repository&#34;&gt;项目站点仓库&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#project-site-repository&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;github.com/pgsty/oink.pgsty.com&lt;/code&gt;&#xA;包含文档、双语示例、回归页面、站点专用布局与资源、基于 npm 的站点测试，以及部署配置。它在&#xA;&lt;code&gt;hugo.yaml&lt;/code&gt; 中导入公开主题模块，并在 &lt;code&gt;go.mod&lt;/code&gt; 中固定版本。&lt;/p&gt;</description>
      </item>
    <item>
        <title>贡献指南</title>
        <link>https://oink.pgsty.com/zh/docs/about/contributing/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/docs/about/contributing/</guid>
        <description>&lt;p&gt;OINK 是从 Docsy 派生的独立主题。贡献必须保留 Apache-2.0 历史和适用的第三方 NOTICE，同时改进唯一的标准实现。&lt;/p&gt;&#xA;&lt;h2 id=&#34;before-opening-a-change&#34;&gt;提交变更之前&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#before-opening-a-change&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;在 &lt;a href=&#34;https://github.com/pgsty/oink&#34;&gt;OINK 仓库&lt;/a&gt;中搜索已有 issue 和拉取请求。&lt;/li&gt;&#xA;&lt;li&gt;报告缺陷时，请记录 Hugo 版本、安装方式、语言、路由、生产命令和最小可复现输入。&lt;/li&gt;&#xA;&lt;li&gt;提议功能时，请说明它为什么属于可复用主题，而不是消费站点的业务层。&lt;/li&gt;&#xA;&lt;li&gt;不要引入 &lt;code&gt;oink.enabled&lt;/code&gt; 开关、&lt;code&gt;oink.*&lt;/code&gt;&#xA;配置树或平行视觉外壳。OINK 的标准布局就是产品本身。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;小型修复可以直接实现。较大的行为变更应在编写代码前说明兼容性、离线、无障碍、安全与迁移影响。&lt;/p&gt;&#xA;&lt;h2 id=&#34;development-environment&#34;&gt;开发环境&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#development-environment&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;消费站点只需要 Hugo Extended、Go 与 Git。主题仓库是直接的 Hugo&#xA;Module；项目站点仓库使用固定的 Node.js 与 npm 版本运行格式、链接、翻译与回归检查。&lt;/p&gt;&#xA;&lt;p&gt;请在仓库根目录按照 lockfile 安装维护依赖。不要在无关变更中顺带更新依赖。&lt;/p&gt;&#xA;&lt;p&gt;项目拆分为：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;github.com/pgsty/oink&lt;/code&gt;：发布主题源码与 &lt;code&gt;VENDOR.json&lt;/code&gt;；&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;github.com/pgsty/oink.pgsty.com&lt;/code&gt;：文档、示例与测试。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;build-the-consumer-contract&#34;&gt;构建消费端合同&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#build-the-consumer-contract&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;必须从消费站点验证用户真正运行的路径：&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f04c475f-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-language=&#34;sh&#34; data-line-count=&#34;1&#34;&gt;&lt;div class=&#34;td-code__utilities td-code__utilities--compact&#34;&gt;&#xA;  &lt;span class=&#34;td-code__language&#34;&gt;BASH&lt;/span&gt;&#xA;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-f04c475f-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo --gc --minify&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;该构建必须在消费站点不安装 npm 软件包的情况下成功，也不能为了主题自有浏览器资源发起网络请求。&lt;/p&gt;&#xA;&lt;p&gt;测试本地主题候选版本时，把两个仓库克隆为同级目录，并启用被忽略的 Hugo&#xA;workspace：&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f04c475f-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-language=&#34;sh&#34; data-line-count=&#34;3&#34;&gt;&lt;div class=&#34;td-code__utilities td-code__utilities--compact&#34;&gt;&#xA;  &lt;span class=&#34;td-code__language&#34;&gt;BASH&lt;/span&gt;&#xA;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-f04c475f-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;go work init .&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;go work edit -replace&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;github.com/pgsty/oink&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;../oink&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;HUGO_MODULE_WORKSPACE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;go.work npm run build&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;run-focused-tests&#34;&gt;运行聚焦测试&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#run-focused-tests&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;先选择最小的相关测试集：&lt;/p&gt;</description>
      </item>
    <item>
        <title>开源许可与致谢</title>
        <link>https://oink.pgsty.com/zh/docs/about/license/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/docs/about/license/</guid>
        <description>&lt;p&gt;OINK 由采用 Apache 许可证的主题、单独授权的文档站，以及各自保留许可证的第三方组件组成。这些层次不会被重新授权成一份不加区分的作品。&lt;/p&gt;&#xA;&lt;p&gt;本页用于帮助工程维护者理解来源，不代替许可证原文。如果摘要与许可证文件存在差异，以许可证文件为准。&lt;/p&gt;&#xA;&lt;h2 id=&#34;license-map&#34;&gt;许可证对应关系&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#license-map&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;范围&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;许可证&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;权威记录&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Oink 主题源码与 Oink 的主题改动&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Apache License 2.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;主题 &lt;a href=&#34;https://github.com/pgsty/oink/blob/main/LICENSE&#34;&gt;&lt;code&gt;LICENSE&lt;/code&gt;&lt;/a&gt; 与 &lt;a href=&#34;https://github.com/pgsty/oink/blob/main/NOTICE&#34;&gt;&lt;code&gt;NOTICE&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;站点代码、构建工具与源自 Docsy 的材料&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Apache License 2.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;站点 &lt;a href=&#34;https://github.com/pgsty/oink.pgsty.com/blob/main/LICENSE&#34;&gt;&lt;code&gt;LICENSE&lt;/code&gt;&lt;/a&gt; 与 &lt;a href=&#34;https://github.com/pgsty/oink.pgsty.com/blob/main/NOTICE&#34;&gt;&lt;code&gt;NOTICE&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Oink 原创文档，另有说明的内容除外&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Creative Commons Attribution 4.0 International&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://github.com/pgsty/oink.pgsty.com/blob/main/LICENSE-CC-BY-4.0&#34;&gt;&lt;code&gt;LICENSE-CC-BY-4.0&lt;/code&gt;&lt;/a&gt;，以及页面或资源自己的署名说明&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;浏览器库、字体、图标与其他随主题分发的资源&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;各组件自己的许可证&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;主题 &lt;a href=&#34;https://github.com/pgsty/oink/blob/main/VENDOR.json&#34;&gt;&lt;code&gt;VENDOR.json&lt;/code&gt;&lt;/a&gt; 与随资源分发的许可证文件&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Creative&#xA;Commons 许可证适用于原创文档内容，不自动覆盖主题代码、复制的源码、商标、截图或另有声明的第三方资源。同样，主题采用 Apache-2.0，并不会替换随附依赖自己的许可证。&lt;/p&gt;&#xA;&lt;h2 id=&#34;upstream-lineage&#34;&gt;上游渊源&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#upstream-lineage&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;OINK 是直接派生自 &lt;a href=&#34;https://github.com/google/docsy&#34;&gt;Docsy&lt;/a&gt;&#xA;的独立主题。它保留 Docsy 的源码历史、Apache-2.0 许可证、版权声明、内容约定，以及仍属于产品合同的兼容 API。项目站也源自 Docsy 项目网站，并在自己的&#xA;&lt;code&gt;NOTICE&lt;/code&gt; 中记录了这段渊源。&lt;/p&gt;&#xA;&lt;p&gt;OINK 不是叠加在另一套 Docsy 安装之上的可选皮肤。继承而来的代码库已经演化成一套标准主题，提供仅依赖 Hugo 的消费端构建、本地浏览器运行时、多语言行为与独立发布流程。贡献者必须保留适用的上游声明，并按照 Apache-2.0 的要求标记修改过的文件。&lt;/p&gt;&#xA;&lt;h2 id=&#34;projects-oink-depends-on&#34;&gt;Oink 依赖的项目&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#projects-oink-depends-on&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo Extended&lt;/a&gt; 是构建平台。站点采用 Hugo&#xA;Module 安装方式时由 Go 解析模块，Git 则承载源码与发布流程。这些工具属于前提条件，主题不会重新分发它们的可执行文件。&lt;/p&gt;</description>
      </item>
    <item>
        <title>关于 Oink</title>
        <link>https://oink.pgsty.com/zh/docs/about/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://oink.pgsty.com/zh/docs/about/</guid>
        <description>&lt;p&gt;OINK 把 Markdown、配置与本地资源转换成完整的技术文档站。站点取得主题源码并安装 Hugo&#xA;Extended 后，无需维护前端工具链，即可构建文档、博客、多语言导航、本地搜索、图表、API 参考与可复用内容组件。&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-oink-provides&#34;&gt;Oink 提供什么&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#what-oink-provides&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;能力&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;主题契约&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;文档与博客布局&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;响应式导航、面包屑导航、目录、页面元数据、反馈、打印与索引&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;多语言行为&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;译文路由、语言元数据、稳定锚点与分语言本地搜索&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;本地优先浏览器功能&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;固定版本的样式、字体、搜索、图表、API 参考、录像与信息图&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;内容组件&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;标签页、折叠块、步骤、卡片、轮播、图表、终端录像与参数替换&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;可复现交付&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;仅依赖 Hugo 的消费端构建、固定资源、vendor 清单与回归样例&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;OINK 把 Docsy 成熟的 Hugo 内容模型演化为独立主题，以 Hugo 作为构建平台，并从 Fumadocs 汲取设计灵感。&lt;a href=&#34;https://oink.pgsty.com/zh/docs/about/license/&#34;&gt;开源许可&lt;/a&gt;页面分别说明上游传承、设计致敬、依赖与许可证，避免混淆这些关系。&lt;/p&gt;&#xA;&lt;h2 id=&#34;explore-the-project&#34;&gt;了解这个项目&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#explore-the-project&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;About 章节按照从评估到维护的顺序组织：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://oink.pgsty.com/zh/docs/about/examples/&#34;&gt;示例站点&lt;/a&gt;介绍完整双语项目站、主题自带的小型示例，以及创建最小消费站点的指南。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://oink.pgsty.com/zh/docs/about/local-first/&#34;&gt;本地优先&lt;/a&gt;定义哪些构建与浏览器能力无需隐藏的网络访问。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://oink.pgsty.com/zh/docs/about/architecture/&#34;&gt;架构&lt;/a&gt;解释仓库、构建、页面外壳、运行时与扩展边界。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://oink.pgsty.com/zh/docs/about/contributing/&#34;&gt;贡献指南&lt;/a&gt;说明如何修改主题与双语文档。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://oink.pgsty.com/zh/docs/about/license/&#34;&gt;开源许可&lt;/a&gt;说明项目渊源、依赖、致谢，以及站点与主题各自适用的许可证。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;repository-boundaries&#34;&gt;仓库边界&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#repository-boundaries&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;公开 Hugo Module 位于&#xA;&lt;a href=&#34;https://github.com/pgsty/oink&#34;&gt;&lt;code&gt;github.com/pgsty/oink&lt;/code&gt;&lt;/a&gt;。文档、示例与回归测试位于独立的&#xA;&lt;a href=&#34;https://github.com/pgsty/oink.pgsty.com&#34;&gt;&lt;code&gt;github.com/pgsty/oink.pgsty.com&lt;/code&gt;&lt;/a&gt;&#xA;仓库。生产消费站点应固定已发布标签或不可变 commit。&lt;/p&gt;&#xA;&lt;p&gt;站点自有的内容、品牌、配置与业务组件仍由站点控制。通用布局、可复用组件、本地浏览器运行时与翻译资源则属于主题。&lt;/p&gt;&#xA;&lt;h2 id=&#34;start-here&#34;&gt;从这里开始&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#start-here&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://oink.pgsty.com/zh/docs/tutorial/install/&#34;&gt;安装 Oink&lt;/a&gt;，或&lt;a href=&#34;https://oink.pgsty.com/zh/docs/tutorial/create-site/&#34;&gt;创建双语站点&lt;/a&gt;；&lt;/li&gt;&#xA;&lt;li&gt;阅读&lt;a href=&#34;https://oink.pgsty.com/zh/docs/content/&#34;&gt;内容创作指南&lt;/a&gt;与&lt;a href=&#34;https://oink.pgsty.com/zh/docs/advanced/&#34;&gt;高级特性&lt;/a&gt;；&lt;/li&gt;&#xA;&lt;li&gt;阅读&lt;a href=&#34;https://oink.pgsty.com/zh/blog/oink/oink-implementation-diary/&#34;&gt;实现日志&lt;/a&gt;，了解设计决策与验证证据。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;本地构建成功，只能证明某份源码在某个本地环境中能够渲染；它不能证明主题标签已经公开，也不能证明线上站点包含同一 commit。&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
