跳到主要内容

docs-site 高 ROI 功能头脑风暴

名词定义

站点构件

  • docs-site:本仓库 docs-site/ 下基于 Docusaurus 3 的静态文档站,文档源挂 ../docs/
  • generated-*.json:6 个构建时生成的映射文件(节编号 / 公式偏移 / 公式 label / 图 label / 表 label / 文档路由),由 gen-sidebars.mjs 产出,当前被 git 跟踪。
  • clientModules:Docusaurus 浏览器端运行的脚本,本站有 6 个(大纲折叠 / MathJax 排版 / 节编号 / 图注 / lightbox / 记忆阅读位置)。

业界工具

  • MkDocs Material:Python 系最流行的文档站主题,内置 tags / social cards / 分级链接校验。
  • docusaurus-graph:社区插件,把文档间链接关系渲染为可交互关系图。
  • Obsidian Publish:Obsidian 笔记发布服务,以 backlinks(反向链接)和 hover preview(悬停预览)著称。

方法

  • RICE:收敛打分法,分 = Reach × Impact × Confidence / Effort。

现状盘点

docs-site 已具备的能力:

能力实现
自动侧边栏 / 导航栏gen-sidebars.mjs 扫描 docs/ 生成
章节 / 公式 / 图表编号,跨文件 \eqref 跳转6 个 generated-*.json + 内联 remark 插件
footnote → 参考资料节自动聚合remark 插件 processFootnotes
链接文本自动改写为目标文档标题remark 插件,带节编号前缀
本地中英文搜索@easyops-cn/docusaurus-search-local
mermaid 图编号 / 图注 / lightbox / 记忆阅读位置clientModules
文档重命名联动改引用rename-doc.mjs

现存痛点:

  • 引用校验形同虚设onBrokenLinks: 'warn'onBrokenAnchors: 'ignore',坏链和悬空 label 不挡构建。
  • MathJax 依赖外网 CDN:jsdelivr 挂掉或内网环境下公式全站不可用,且是首屏延迟来源。
  • generated JSON 进 git:每次文档变更产生 6 条 diff 噪音。

候选清单(按维度)

内容质量保障

  • ref-integrity-check — 构建时校验引用完整性:坏链转 throw、\eqref/figref 悬空 label 报错。
  • docs-lint-ci — docs-conventions 机械规则(H2 禁手动编号 / 图表必须有 label)做成 lint 脚本进 CI。
  • generated-map-staleness-check — 校验 generated-*.json 与 docs/ 实际状态一致。

检索与发现

  • global-index-pages — 自动生成全站图表 / 公式 / 术语索引页。
  • search-tuning — 中文搜索质量调优(标题加权、分词)。
  • related-docs — 页面底部相关文档推荐(基于链接结构)。

知识网络

  • backlinks-panel — 每页底部显示被哪些文档引用(doc-route-map 反转即得)。
  • graph-view — 文档关系图(现成插件 docusaurus-graph)。
  • tags-taxonomy — frontmatter tags + 标签聚合页。

阅读体验

  • mathjax-local — MathJax 从 CDN 改为本地打包。
  • link-hover-preview — 悬停内链显示目标文档摘要。
  • per-doc-pdf — 单篇 / 单章 PDF 导出。

作者工作流

  • new-doc-scaffold — 新文档脚手架:按 docs-conventions 模板生成骨架 + frontmatter。
  • rename-dir-supportrename-doc.mjs 扩展到目录级重命名。
  • label-dup-check — label 重复检测。

发布与离线

  • offline-bundle — 全离线构建(MathJax + 字体本地化),内网可部署。

工程健康

  • generated-json-out-of-git — generated-*.json 移出 git,构建时生成。
  • config-plugin-extract — docusaurus.config.ts 内联 remark 插件(约 300 行)抽独立模块 + 单测。
  • gen-sidebars-refactor — 28K 的 gen-sidebars.mjs 拆分。

业界对标

工具启发 / 印证
MkDocs Materialtags 体系、social cards、链接校验分 warn/info/ignore 级
Docusaurus 社区插件目录docusaurus-graph 关系图、papersaurus / prince-pdf PDF 导出
Docusaurus 核心broken anchors 检测已内置,ref-integrity-check 大半是改配置而非写代码

social cards 面向社交分享,对内部站无意义,不回填。

收敛矩阵(RICE)

R=受益频率(0-10),I=影响(0.25-3),C=信心(0-1),E=人周。分 = R×I×C/E。

候选RICE理由
generated-json-out-of-git811.00.240每次 commit 受益;纯构建脚本改动,零风险
mathjax-local91.50.90.340每次打开页面受益;去掉外网单点依赖
ref-integrity-check1020.90.536每次构建拦截腐烂;本站核心价值是交叉引用网
new-doc-scaffold51.50.90.513.5每写新文档受益,与 iforge-research 衔接
backlinks-panel720.8111.2知识库刚需,数据已有只差 UI
docs-lint-ci620.819.6把 review skill 机械检查左移到构建时
link-hover-preview71.50.71.54.9体验好但需摘要提取 + 浮层组件
graph-view310.70.54.2现成插件便宜,观赏多于实用
config-plugin-extract210.90.53.6维护性收益,需单测保护编号系统
global-index-pages410.813.2锦上添花
tags-taxonomy310.812.4目录树已承担分类职能
related-docs410.61.51.6推荐质量难保证
per-doc-pdf210.620.6MathJax / mermaid 在 PDF 管线坑多

结论

第一批做前三名(generated-json-out-of-git + mathjax-local + ref-integrity-check):effort 均在一周内,消除的都是每天在付的隐性成本(diff 噪音 / CDN 依赖 / 引用腐烂),且全是构建链路改动,不碰文档内容。第二批候补 new-doc-scaffold 与 backlinks-panel。

开放问题

  • ref-integrity-check 的 fig-/tbl- 锚点构建期不可见问题 — 已解决(2026-06-10):scripts/check-refs.mjs 读 label map 单独校验,接入 build 链。
  • generated-json-out-of-git 的消费方确认 — 已确认(2026-06-10):仅 docs-site 内部读取,无外部消费方,已 untrack。
  • onBrokenLinks 仍为 'warn' — 已解决(2026-06-10):存量坏链清零(含 warn 模式漏报的章节重编号残留与大小写不匹配),已转 'throw'。顺带修复 gen-sidebars 路由推导两个 bug(日期前缀误剥 / 同名目录索引塌缩)。
  • backlinks-panel(第二批候补) — 已落地(2026-06-10):scripts/gen-backlinks.mjs 构建时生成反向链接 map,src/theme/DocItem/Footer 渲染"被引用于"面板。
  • offline-bundle 与 mathjax-local 范围重叠:MathJax 已本地化,其余外网依赖待盘点(字体、其它 CDN script)。