close

Мультиверсионность

Стандартная тема Rspress поддерживает управление несколькими версиями документации. Далее расскажем, как подключить мультиверсионность.

Настройка multiVersion

Список версий и версия по умолчанию задаются через параметр multiVersion. Пример:

rspress.config.ts
import { defineConfig } from '@rspress/core';

export default defineConfig({
  multiVersion: {
    default: 'v1',
    versions: ['v1', 'v2'],
  },
});

Здесь default — это версия по умолчанию, а versions — список всех доступных версий.

Добавление документов для разных версий

В соответствии со списком версий, который вы настроили, добавьте документы разных версий в директорию docs. Пример:

docs
├── v1
│   ├── index.mdx
│   └── guide
│       └── index.mdx
└── v2
    ├── index.mdx
    └── guide
        └── index.mdx

В системе маршрутизации Rspress для версии по умолчанию префикс версии автоматически опускается. Например, файл v1/index.mdx будет доступен по маршруту /, а файл v2/index.mdx — по маршруту /v2/.

Подсказка

В ссылках внутри документов вручную добавлять префикс версии не нужно. Rspress автоматически подставит нужный префикс в зависимости от версии текущего документа. Например, ссылка /guide/ в файле v2/ будет преобразована в /v2/guide/.

Получение текущей версии в компонентах

В компонентах текущую версию можно получить с помощью хука useVersion, например:

import { useVersion } from '@rspress/core/runtime';

export default () => {
  const version = useVersion();
  return <div>Текущая версия: {version}</div>;
};

Ограничение поиска только текущей версией

Вы можете включить параметр search.versioned, чтобы поиск работал только по документам текущей версии.

rspress.config.ts
import { defineConfig } from '@rspress/core';

export default defineConfig({
  multiVersion: {
    default: 'v1',
    versions: ['v1', 'v2'],
  },
  search: {
    versioned: true,
  },
});