多语言文档站的荒野西部
来源:technicalwriting.dev — 2026-10-08
📋 概述
technicalwriting.dev 讨论所谓"polyglot 文档站":一个项目用 N 种语言提供库,文档站往往要对接 N 或 N+1 个文档生成器,而对外又需要统一的字体、配色与站内搜索体验。策略上大体只有两种。第一种是"变换":解析各 API 生成器的输出,再转成主文档生成器能吃的标记——作者第一份工作就用 XSLT 把 Doxygen HTML 转成片段塞进 Sphinx,Breathe 走的也是这条路;代价是丢掉生成器对各自语言的理解、可能删掉用户真正需要的信息(Chesterton 的围栏),而且与生态习惯相悖。第二种是让生成器的原生 UI 直接嵌入主站,文中以 pigweed.dev 从 Breathe 转向该路线为例,理由包括构建变慢(约 90 秒降到 60 秒)与胶水代码过多导致静默失败。
🔑 核心要点
- 定义:N 种语言对应 N 或 N+1 个文档生成器,却要拼成一个整体
- 第一种策略是变换生成器的输出,案例包括 Doxygen+XSLT 与 Breathe
- 变换的代价:丢掉生成器对本语言的理解,可能删掉用户真正需要的信息(Chesterton's fence)
- 还与生态习惯相悖:Rust 用户熟悉 rustdoc 的 UI,换一套等于让用户重新学
- pigweed.dev 从此转向另一条路线,原因之一是构建从约 90 秒降到 60 秒
- 另一个原因是胶水代码过多带来静默失败
💡 金句
长话短说,polyglot 文档站感觉是技术写作里一片探索得极少的边疆,到处是响尾蛇、风滚草,和你 favorite 的那个西部片桥段。
👍 0
👎 0
← 返回 Lobsters 首页