多版本文档

Rspress 的默认主题中支持多版本文档管理,接下来,我们将介绍如何接入多版本文档。

multiVersion 配置

通过 multiVersion 配置版本列表和默认版本,比如:

rspress.config.ts

  1. import { defineConfig } from 'rspress/config';
  2. export default defineConfig({
  3. multiVersion: {
  4. default: 'v1',
  5. versions: ['v1', 'v2'],
  6. },
  7. });

其中,default 为默认版本,versions 为版本列表。

添加多版本文档

根据你配置的版本列表,在 docs 目录下,添加多版本文档,比如:

  1. docs
  2. ├── v1
  3. ├── README.md
  4. └── guide
  5. └── README.md
  6. └── v2
  7. ├── README.md
  8. └── guide
  9. └── README.md

在 Rspress 的约定式路由中,对于默认版本,会自动省略掉版本的路径前缀。如 v1/README.md 会被渲染为 /README 路由,而 v2/README.md 会被渲染为 /v2/README 路由。

提示

对于文档中的链接,你不需要手动添加版本前缀,Rspress 会自动根据当前文档的版本,添加对应的版本前缀。如 v2/README.md 中的链接 /guide/README 会被渲染为 /v2/guide/README

组件中获取当前版本

在组件中,你可以通过 useVersion 获取当前版本,比如:

  1. import { useVersion } from 'rspress/runtime';
  2. export default () => {
  3. const version = useVersion();
  4. return <div>当前版本:{version}</div>;
  5. };

仅搜索当前版本

可以配置 search.versioned 来仅搜索当前版本的文档。

rspress.config.ts

  1. import { defineConfig } from 'rspress/config';
  2. export default defineConfig({
  3. multiVersion: {
  4. default: 'v1',
  5. versions: ['v1', 'v2'],
  6. },
  7. search: {
  8. versioned: true,
  9. },
  10. });