Docusaurus 文档版本、i18n 与部署治理手册
Docusaurus 适合需要 docs、blog、版本文档、i18n 和 React 生态扩展的站点。能力越多,事实源也越多:当前文档、冻结版本、翻译文件、侧栏、插件和主题都可能改变路由与输出。团队必须定义版本和语言的生命周期,不能只初始化一个示例站点。
初始化并确定站点对象
脚手架可以创建 classic 模板,随后固定 Node、包管理器和依赖锁。站点 URL 与 baseUrl 是不同配置:前者表达域名,后者表达部署路径,两者共同影响 canonical URL 和资源地址。
npx create-docusaurus@latest handbook classic
cd handbook
npm run start
npm run build
npm run servedocs、blog、pages 和 static 分别承担不同内容入口。关闭不用的插件比保留空目录更清楚,也能减少路由和构建依赖。
配置、侧栏和主题进入同一构建
站点配置控制 URL、baseUrl、i18n、插件和主题;sidebars 组织文档导航;React 组件与 MDX 承担增强。普通 Markdown 的格式规则回到家族 19 的 Markdown,MDX 的可执行内容边界回到 MDX。
export default {
url: 'https://docs.example.invalid',
baseUrl: '/handbook/',
i18n: {defaultLocale: 'zh-CN', locales: ['zh-CN', 'en']},
}正向验证从默认语言首页走到一篇文档和静态资源,再切换另一语言。反例删除翻译键或配置错误 baseUrl,预期构建或部署 smoke 能定位失败。
文档版本不是 Git 标签的副本
版本命令会复制当前 docs 与侧栏形成站点内快照,后续修改当前文档不会自动更新旧版本。只有仍需用户访问和支持的产品版本才值得进入站点版本;无期限复制会扩大翻译、链接和搜索成本。
docs/ 当前文档
versioned_docs/ 冻结版本内容
versioned_sidebars/ 冻结版本导航
versions.json 可见版本入口退役版本先提供迁移提示,再从导航、索引和发布中清理。历史证据可以归档,但不应继续出现在默认搜索结果里误导读者。
i18n 是独立发布维度
语言不是页面末尾的翻译字段。路由、导航、版本文档、搜索和静态资源都要按 locale 验证。翻译提取与回填需要稳定 key,源内容变化后标记过期,不能继续把旧译文当作当前事实。
权限与隐私在各语言保持一致,不能只审查默认语言。外部翻译服务使用最小数据集和独立凭证,敏感内部页面不进入公开翻译流程。
React 构建与部署验证
主题 swizzle 和 React 组件会增加升级成本,优先通过配置和 CSS 完成简单定制。服务端构建阶段不能无条件访问浏览器 API。插件、主题与 npm 脚本都属于供应链,锁定版本并审查安装脚本。
项目接入 CI 后执行内容规则、链接检查、全部 locale/版本构建和关键 URL smoke。部署制品记录来源提交,缓存按锁文件、配置、版本目录和翻译输入失效。真实托管环境验证深链接、404、资源和刷新。
清理、回滚与退出
清理版本、语言或插件时同步处理导航、搜索、重定向和静态资源。回滚恢复代码、内容、翻译、锁文件和制品的匹配组合。故障证据区分内容解析、React 编译、路由生成和托管重写,避免在多个版本目录重复试改。
迁移退出时保存 Markdown/MDX、版本快照、翻译资源、侧栏和 URL 映射。MDX 组件若无法迁移,先生成可读静态替代。容量与成本重点看版本×语言的组合增长、搜索索引和构建时长;每新增一个维度都要有 owner 与退出条件。
