<?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://pgsty.github.io/oink.pgsty.com/zh/docs/update/</link><description>Recent content in 更新 OINK on OINK 文档主题</description><generator>Hugo</generator><language>zh-CN</language><atom:link href="https://pgsty.github.io/oink.pgsty.com/zh/docs/update/index.xml" rel="self" type="application/rss+xml"/><item><title>更新 OINK Hugo 模块</title><link>https://pgsty.github.io/oink.pgsty.com/zh/docs/update/hugo-module/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/zh/docs/update/hugo-module/</guid><description>&lt;h2 id="pin-a-version"&gt;固定版本&lt;a class="td-heading-self-link" href="#pin-a-version" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;生产站点应导入发布标签或不可变的 commit，绝不能跟随未固定版本的分支。在站点根目录，把 Oink 更新到指定 ref：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo mod get github.com/pgsty/oink@THEME_REF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo mod tidy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将 &lt;code&gt;THEME_REF&lt;/code&gt; 替换为该版本发布说明指定的根标签或 commit。&lt;/p&gt;
&lt;h2 id="test-a-local-checkout"&gt;测试本地 checkout&lt;a class="td-heading-self-link" href="#test-a-local-checkout" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;如果要在不修改已提交模块版本的前提下测试本地 OINK checkout，请使用被忽略的 Go
workspace：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go work init .
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go work edit -replace&lt;span class="o"&gt;=&lt;/span&gt;github.com/pgsty/oink&lt;span class="o"&gt;=&lt;/span&gt;/absolute/path/to/oink
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;HUGO_MODULE_WORKSPACE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;go.work
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo --gc --minify
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;不要把包含开发者机器专属绝对路径的 &lt;code&gt;go.work&lt;/code&gt; 提交到仓库。&lt;/p&gt;
&lt;h2 id="verify-the-resolved-module"&gt;验证解析出的模块&lt;a class="td-heading-self-link" href="#verify-the-resolved-module" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;检查 Hugo 的依赖图：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo mod graph
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;确认主题解析到预期的标签、commit 或本地 replacement。OINK 不需要运行
&lt;code&gt;hugo mod npm pack&lt;/code&gt; 或 &lt;code&gt;npm install&lt;/code&gt;，因为浏览器依赖已经随主题提供。&lt;/p&gt;
&lt;p&gt;随后继续&lt;a href="https://pgsty.github.io/oink.pgsty.com/zh/docs/update/#update-overrides"&gt;审查主题覆盖&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>从 Docsy npm 包迁移</title><link>https://pgsty.github.io/oink.pgsty.com/zh/docs/update/npm-package/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/zh/docs/update/npm-package/</guid><description>&lt;p&gt;上游 &lt;code&gt;@docsy/theme&lt;/code&gt; npm 包不是 OINK 的发行渠道。OINK 将 Bootstrap、Font
Awesome、字体和浏览器运行时直接随主题提供，因此消费站点只需 Hugo
Extended 即可构建。&lt;/p&gt;
&lt;h2 id="remove-the-npm-theme-integration"&gt;移除 npm 主题集成&lt;a class="td-heading-self-link" href="#remove-the-npm-theme-integration" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;首先选择一种 OINK 发行方式：固定版本的归档、Git
submodule 或克隆，或者兼容 Hugo 模块。让 Hugo 能够访问该主题，并确认执行
&lt;code&gt;hugo --gc --minify&lt;/code&gt; 时可以正确解析。&lt;/p&gt;
&lt;p&gt;随后，从站点的 &lt;code&gt;package.json&lt;/code&gt; 中移除
&lt;code&gt;@docsy/theme&lt;/code&gt;，以及仅用于构建 Docsy 资源的依赖。删除 Hugo 配置中 Bootstrap 和 Font
Awesome 的 npm 挂载项，同时删除只为旧主题管线存在的 PostCSS 与 Autoprefixer 构建步骤。&lt;/p&gt;
&lt;p&gt;不要仅仅因为某项应用依赖使用 npm 就将其删除。Hugo-only 合同针对文档主题；站点自有应用或业务组件仍可能采用另一套明确且必要的工具链。&lt;/p&gt;
&lt;h2 id="verify-the-migration"&gt;验证迁移&lt;a class="td-heading-self-link" href="#verify-the-migration" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;从全新 checkout 开始，只安装 Hugo Extended，不创建 &lt;code&gt;node_modules&lt;/code&gt;
目录，然后执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo --gc --minify
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果站点同时支持 LTR 和 RTL 页面，请分别检查。还要验证本地字体与图标、搜索、图表、API 文档和所有已经迁移的内容组件。构建完全正常后，只有在站点自有工具也不再使用 lockfile 时，才可以删除过时的 lockfile。&lt;/p&gt;</description></item><item><title>更新 OINK Git submodule 或克隆</title><link>https://pgsty.github.io/oink.pgsty.com/zh/docs/update/git/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/zh/docs/update/git/</guid><description>&lt;p&gt;请根据安装方式选择相应步骤：&lt;a href="https://pgsty.github.io/oink.pgsty.com/zh/docs/update/git/#update-the-submodule"&gt;submodule&lt;/a&gt;
或&lt;a href="https://pgsty.github.io/oink.pgsty.com/zh/docs/update/git/#update-the-clone"&gt;克隆&lt;/a&gt;。两种方式都必须固定到目标版本标签或不可变的 commit。&lt;/p&gt;
&lt;h2 id="update-the-submodule"&gt;更新 submodule&lt;a class="td-heading-self-link" href="#update-the-submodule" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在站点根目录进入主题仓库获取标签，并 checkout 目标 ref：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git -C themes/oink fetch --tags
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git -C themes/oink checkout THEME_REF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git add themes/oink
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;Update OINK theme to THEME_REF&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果站点使用其他目录名，请相应替换 &lt;code&gt;themes/oink&lt;/code&gt;。父仓库会记录最终的 submodule
commit。请推送这次父仓库提交，确保 CI 和其他贡献者解析到完全相同的源码。&lt;/p&gt;
&lt;p&gt;无需安装任何 npm 软件包。如果某个发行版的完整主题包含仅供源码使用的嵌套 submodule，请按照该版本的说明初始化；OINK 发行物所需的浏览器运行时资源已经包含在内。&lt;/p&gt;
&lt;h2 id="update-the-clone"&gt;更新克隆&lt;a class="td-heading-self-link" href="#update-the-clone" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;如果主题目录是由站点跟踪或恢复的克隆，请将其更新到目标 ref：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git -C themes/oink fetch --tags
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git -C themes/oink checkout THEME_REF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;沿用站点现有的可复现方式，提交、归档或记录更新后的主题。不要让生产构建持续跟随
&lt;code&gt;main&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;如果克隆中包含本地修改，请在切换 ref 前把它们提交到分支。更新后再通过 rebase 或其他方式重新应用，并显式解决冲突。可复用的修改应尽量回馈 OINK；消费站点只保留真正属于站点的覆盖。&lt;/p&gt;
&lt;p&gt;随后继续&lt;a href="https://pgsty.github.io/oink.pgsty.com/zh/docs/update/#update-overrides"&gt;审查主题覆盖&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>将 Docsy 站点迁移到 OINK</title><link>https://pgsty.github.io/oink.pgsty.com/zh/docs/update/convert-site-to-module/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pgsty.github.io/oink.pgsty.com/zh/docs/update/convert-site-to-module/</guid><description>&lt;p&gt;这次迁移会删除复制到站点中的公共外壳覆盖，以及消费端 npm 资源管线，但不要求批量重写 Markdown 正文。&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;开始之前&lt;a class="td-heading-self-link" href="#before-you-begin" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;新建工作分支，并确认现有站点能够构建。盘点 &lt;code&gt;layouts/&lt;/code&gt;、&lt;code&gt;assets/&lt;/code&gt;、&lt;code&gt;static/&lt;/code&gt; 和
&lt;code&gt;i18n/&lt;/code&gt; 下的自定义文件，将其分为三类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;已经由 OINK 提供的 Docsy 公共外壳代码；&lt;/li&gt;
&lt;li&gt;已经由 OINK 提供的可复用组件；&lt;/li&gt;
&lt;li&gt;必须保留的站点品牌、产品页面或业务组件。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不要删除第三类文件。&lt;/p&gt;
&lt;h2 id="select-a-theme-distribution"&gt;选择主题发行方式&lt;a class="td-heading-self-link" href="#select-a-theme-distribution" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;选择固定版本的 Git checkout、版本归档、完整离线发行包或公开的 Oink Hugo
Module。如果要在本地临时演练，请导入 Oink，并使用 Go
workspace 解析本地 checkout：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go work init .
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go work edit -replace&lt;span class="o"&gt;=&lt;/span&gt;github.com/pgsty/oink&lt;span class="o"&gt;=&lt;/span&gt;/absolute/path/to/oink
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;HUGO_MODULE_WORKSPACE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;go.work
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo --gc --minify
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这样可以测试 OINK，而不会把开发者专属路径写入站点配置或 &lt;code&gt;go.mod&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id="remove-the-consumer-asset-pipeline"&gt;移除消费端资源管线&lt;a class="td-heading-self-link" href="#remove-the-consumer-asset-pipeline" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;删除只用于获取 Bootstrap、Font
Awesome、字体或主题浏览器运行时的 npm 挂载项与构建步骤。删除仅为 Docsy 存在的
&lt;code&gt;postCSS&lt;/code&gt; 调用和 Autoprefixer 步骤。如果站点自有软件仍然需要
&lt;code&gt;package.json&lt;/code&gt;，请继续保留；但文档构建本身必须能够在不安装这些软件包的情况下完成。&lt;/p&gt;
&lt;h2 id="remove-common-overrides"&gt;移除公共覆盖&lt;a class="td-heading-self-link" href="#remove-common-overrides" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;OINK 直接提供文档与博客外壳、顶部导航栏、页脚、侧栏、目录、搜索、语言选择器、head 资源和核心内容组件。请按依赖关系逐组删除站点中的对应覆盖。&lt;/p&gt;</description></item></channel></rss>