系列: 造 OINK
同一天发出的两篇,按顺序读。第一篇讲 OINK 是什么、以及它刻意不做什么;第二篇是 那个说法底下的工程记录——迁移、安全边界、测试,还有那些没能在十一个生产站点面前 活下来的论证。
想知道它长什么样,读公告;想知道它为什么长这样,读日记。
-
OINK 实现预览正式亮相
今天,我们发布 OINK 实现预览:它从 Docsy 直接演化而来,提供唯一标准产品外壳、仅依赖 Hugo 的消费端构建、本地优先浏览器依赖、通用多语言框架,以及一组从 PGSTY 文档站提炼出的可复用内容组件。 这是实现与文档里程碑,不是已经公开的版本化发行。最终公开品牌、模块与软件包身份、首个版本,以及生产 Cloudflare Pages 部署,仍是必须显式关闭的发布关卡。 为什么需要 OINK? 多个成熟文档站分别复制了相同的 Docsy 布局、导航、搜索代码 …
今天,我们发布 OINK 实现预览:它从 Docsy 直接演化而来,提供唯一标准产品外壳、仅依赖 Hugo 的消费端构建、本地优先浏览器依赖、通用多语言框架,以及一组从 PGSTY 文档站提炼出的可复用内容组件。 这是实现与文档里程碑,不是已经公开的版本化发行。最终公开品牌、模块与软件包身份、首个版本,以及生产 Cloudflare Pages 部署,仍是必须显式关闭的发布关卡。 为什么需要 OINK? 多个成熟文档站分别复制了相同的 Docsy 布局、导航、搜索代码 …
-
OINK 实施日记:从复制外壳到统一主题
OINK 始于一个令人不安的事实:多个生产文档站之所以看起来相互关联,是因为它们确实源于同一套实现;但公共实现却以复制文件的形式散落在各处。呈现效果足够一致,维护模型却并非如此。 这篇日记记录项目如何从重复站点覆盖项走向一款直接演化的统一主题。它关注决策与证据,而不是逐条复述提交历史。 锁定产品契约 第一项真正有价值的工作是做减法。选择实现方式之前,我们先写清产品必须是什么: 从 Docsy 直接演化而来的独立主题; 唯一标准外壳,而不是可切换皮肤; Hugo Extended 是消费端唯一构建 …
OINK 始于一个令人不安的事实:多个生产文档站之所以看起来相互关联,是因为它们确实源于同一套实现;但公共实现却以复制文件的形式散落在各处。呈现效果足够一致,维护模型却并非如此。 这篇日记记录项目如何从重复站点覆盖项走向一款直接演化的统一主题。它关注决策与证据,而不是逐条复述提交历史。 锁定产品契约 第一项真正有价值的工作是做减法。选择实现方式之前,我们先写清产品必须是什么: 从 Docsy 直接演化而来的独立主题; 唯一标准外壳,而不是可切换皮肤; Hugo Extended 是消费端唯一构建 …
-
在 Blog 外壳上沉浸式阅读
本页仍然由普通 Blog 外壳渲染,背后没有特殊的内容类型。只需四个 front matter 键 就能改变呈现;一个分区也可以在 cascade 里一次写下同样的配方: featured_image: hero # 题图成为全幅开场 toc_style: flow # 更宽的大纲从正文起点开始 toc_taxonomies: false # 右栏只保留大纲 sidebar_enabled: false Hero 开场 带有题图的页面可以用它开场。hero 会把图片变成横跨视口顶部的背景, 将标 …
本页仍然由普通 Blog 外壳渲染,背后没有特殊的内容类型。只需四个 front matter 键 就能改变呈现;一个分区也可以在 cascade 里一次写下同样的配方: featured_image: hero # 题图成为全幅开场 toc_style: flow # 更宽的大纲从正文起点开始 toc_taxonomies: false # 右栏只保留大纲 sidebar_enabled: false Hero 开场 带有题图的页面可以用它开场。hero 会把图片变成横跨视口顶部的背景, 将标 …