版本化
Cdocs 支持多版本文档站:把当前 docs/ 复制一份快照为 docs-v1/、docs-v2/,构建时自动识别为历史版本,生成 current(最新)与各历史版本,页眉出现版本下拉一键切换。该功能默认启用、约定优于配置——不写任何配置就能用。
#约定:目录即版本
| 目录 | 版本名 | 说明 |
|---|---|---|
docs/ | current | 最新版本,页眉标「最新」 |
docs-v1/ | v1 | 历史版本(docs-<名字> 都会被识别) |
docs-v2/ | v2 | 依此类推 |
#用法(三步)
cp -r docs docs-v1 # ① 发布 v1 时锁定一份快照
Cdocs build # ② 构建:自动识别 current + v1 两个版本
构建输出:
[versions] 自动识别 1 个历史版本: current v1
构建版本 最新 → "dist\current"
构建版本 v1 → "dist\v1"
产物结构(每个版本都是完整独立站点,含各自的 i18n / RSS / PWA):
dist/
├── index.html # 根重定向 → current/
├── current/ # 最新版(zh-CN/ + en/ 双语)
└── v1/ # v1 快照(zh-CN/ + en/ 双语)
页眉版本下拉:当前版本显示为「最新」(不可点),其他版本为链接,切换保持当前语言(zh-CN 页切到 v1 仍是 v1/zh-CN/)。
#覆盖默认:config.json 的 versions 数组
需要自定义 label / 顺序 / 默认版本时,在 config.json 的 site 段声明:
"versions": [
{ "name": "current", "label": "最新", "default": true },
{ "name": "v2", "label": "2.0 稳定版" },
{ "name": "v1", "label": "1.x 旧版" }
]
name:版本目录名(docs-<name>或current指当前docs/)label:下拉显示名(默认取 name)default:标记默认版本(不配则最新自动为默认)
配置了 versions 数组时以显式声明为准(自动扫描不再生效),适合控制顺序或隐藏某些版本。
#适用场景
- 发新版保留旧文档:API 变更、迁移指南的读者仍能访问旧版本文档
- 多语言站点同样支持:每个版本各自带
zh-CN/en完整双语 - 版本间差异对比:各版本独立构建,
../<name>/链接互跳
注意:
docs-v1是内容快照,纳入版本管理或随站点发布均可;删除docs-v1后重新构建即回到单版本,零残留。