版本控制
你可以使用版本控制 CLI,基于 docs
目录中的最新内容创建一个新的文档版本。这套特定的文档将被保存下来并可供访问,即便 docs
目录中的文档在不断演进。
注意
在开始对你的文档进行版本控制之前请三思——这可能会让贡献者更难帮助改进文档!
大多数情况下,你并不需要版本控制,因为它只会增加你的构建时间,并给你的代码库引入复杂性。版本控制最适用于那些流量大、版本间文档变更频繁的网站。如果你的文档很少变动,就不要为其添加版本控制。
为了更好地理解版本控制的工作原理,并判断它是否符合你的需求,你可以继续阅读下文。
概述
一个典型的版本化文档网站结构如下:
website
├── sidebars.json # 当前文档版本的侧边栏
├── docs # 当前文档版本的 `docs` 目录
│ ├── foo
│ │ └── bar.md # https://mysite.com/docs/next/foo/bar
│ └── hello.md # https://mysite.com/docs/next/hello
├── versions.json # 用于标明可用版本的文件
├── versioned_docs
│ ├── version-1.1.0
│ │ ├── foo
│ │ │ └── bar.md # https://mysite.com/docs/foo/bar
│ │ └── hello.md
│ └── version-1.0.0
│ ├── foo
│ │ └── bar.md # https://mysite.com/docs/1.0.0/foo/bar
│ └── hello.md
├── versioned_sidebars
│ ├── version-1.1.0-sidebars.json
│ └── version-1.0.0-sidebars.json
├── docusaurus.config.js
└── package.json
versions.json
文件是一个版本名称的列表,按从新到旧的顺序排列。
下表解释了版本化文件如何映射到其版本和生成的 URL。
路径(Path) | 版本 (Version) | URL |
---|---|---|
versioned_docs/version-1.0.0/hello.md | 1.0.0 | /docs/1.0.0/hello |
versioned_docs/version-1.1.0/hello.md | 1.1.0 (最新) | /docs/hello |
docs/hello.md | 开发版 (current) | /docs/next/hello |
提示
docs
目录中的文件属于 current
(开发版)文档版本。
默认情况下,current
(开发版)文档版本被标记为 Next
,并托管在 /docs/next/*
路径下,但这完全可以根据你项目的发布周期进行配置。
术语
请注意我们在这里使用的术语。
- 开发版本 (Current version)
- 位于 `
./docs
` 文件夹中的版本。 - 最新版本 / 最近版本 (Latest version / last version)
- 文档导航栏项目默认服务的版本。通常路径为 `
/docs
`。
"开发版本"是由文件系统位置定义的,而"最新版本"是由导航行为定义的。它们可能相同,也可能不同!(如上表所示,默认配置将它们视为不同的版本:开发版本位于 /docs/next
,最新版本位于 /docs
。)
教程
标记新版本
- 首先,确保当前的文档版本(开发版)(即
./docs
目录)已经准备好可以正式发布了。 - 输入一个新的版本号。
- npm
- Yarn
- pnpm
- Bun
npm run docusaurus docs:version 1.1.0
yarn docusaurus docs:version 1.1.0
pnpm run docusaurus docs:version 1.1.0
bun run docusaurus docs:version 1.1.0
在标记一个新版本时,文档版本控制机制将会:
- 将
docs/
文件夹的全部内容复制到一个新的versioned_docs/version-[versionName]/
文件夹中。 - 基于你当前的侧边栏配置(如果存在)创建一个版本化的侧边栏文件,并保存为
versioned_sidebars/version-[versionName]-sidebars.json
。 - 将新的版本号追加到
versions.json
文件中。
创建新文档
- 将新文件放入相应的版本文件夹中。
- 根据版本号,在相应的侧边栏文件中包含对新文件的引用。
- Current version structure
- Older version structure
# 新建的文件。
docs/new.md
# 编辑对应的侧边栏文件。
sidebars.js
# 新建的文件。
versioned_docs/version-1.0.0/new.md
# 编辑对应的侧边栏文件。
versioned_sidebars/version-1.0.0-sidebars.json
提示
版本化的侧边栏文件和标准的侧边栏文件一样,其路径是相对于给定版本的内容根目录的——因此,对于上面的例子,你的版本化侧边栏文件可能看起来像这样:
{
"sidebar": [
{
"type": "autogenerated",
"dirName": "."
}
]
}
或者对于手动配置的侧边栏:
{
"sidebar": [
{
"type": "doc",
"id": "new",
"label": "New"
}
]
}