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