Базовая конфигурация
root
- Тип:
string - По умолчанию:
docs
Указывает корневую директорию с документацией. Например:
Эта настройка поддерживает как относительные, так и абсолютные пути. Относительные пути отсчитываются от текущей рабочей директории (cwd).
Конечно, помимо указания корневой директории документации через файл конфигурации, вы также можете задать её через параметры командной строки, например:
base
- Тип:
string - По умолчанию:
/
Базовый путь для развёртывания. Например, если вы планируете разместить сайт по адресу https://foo.github.io/bar/, то значение base нужно установить в "/bar/":
title
- Тип:
string - По умолчанию:
"Rspress"
Заголовок сайта. Этот параметр будет использоваться в качестве заголовка HTML-страницы. Например:
description
- Тип:
string - По умолчанию:
""
Описание сайта. Будет использовано в качестве мета-описания HTML-страницы. Например:
icon
- Тип:
string | URL - По умолчанию:
""
Иконка сайта. Этот путь будет использован в качестве иконки (favicon) HTML-страницы. Например:
Для обычного пути Rspress будет искать иконку в директории public. Конечно, вы также можете указать ссылку на CDN или использовать протокол file:// либо объект URL для указания локального абсолютного пути.
lang
- Тип:
string - По умолчанию:
""
Язык сайта по умолчанию. Подробности см. в разделе Интернационализация.
i18nSourcePath
- Тип:
string - По умолчанию:
path.join(cwd, 'i18n.json')
Указывает путь к файлу источника данных i18n. По умолчанию Rspress читает файл i18n.json из текущей рабочей директории. Например:
Это имеет тот же эффект, что и размещение файла i18n.json в корне проекта. Если также настроен i18nSource, то данные из i18nSource будут объединены с данными из i18nSourcePath и имеют приоритет.
i18nSource
- Тип:
Record<string, Record<string, string>> | ((value: Record<string, Record<string, string>>) => Record<string, Record<string, string>> | Promise<Record<string, Record<string, string>>>) - По умолчанию:
{}
С помощью этого параметра можно переопределить встроенные тексты интернационализации Rspress или добавить собственные тексты для кастомных компонентов. При добавлении собственных текстов обычно используется вместе с хуком useI18n.
Реализация и эффект полностью совпадают с файлом i18n.json. Можно использовать любой из этих способов. Параметр i18nSource имеет более высокий приоритет, чем i18n.json, и поддерживает функции.
Параметр i18nSource — это объект со следующей структурой:
Где textKey первого уровня — это имя ключа текста, locale второго уровня — код языка (например, ru, en), а значение — переведённый текст на соответствующем языке.
Вот пример изменения встроенных i18n-текстов Rspress:
i18nSource также может быть функцией, например:
Вот встроенные строки i18n в Rspress:
logo
- Тип:
string | { dark: string; light: string } - По умолчанию:
""
Логотип сайта. Этот путь будет использован для поиска и отображения логотипа в левом верхнем углу навигационной панели. Например:
Rspress будет искать логотип в директории public, также можно указать адрес на CDN.
Конечно, можно задать разные логотипы для тёмной и светлой тем:
logoHref
- Тип:
string - По умолчанию:
/${lang}/
Пользовательский ссылка для логотипа. По умолчанию при клике на логотип происходит переход на главную страницу текущего языка. Например:
logoText
- Тип:
string - По умолчанию:
""
Текст логотипа сайта. Этот текст будет отображаться рядом с логотипом в левом верхнем углу навигационной панели. Например:
outDir
- Тип:
string - По умолчанию:
doc_build
Пользовательская директория для вывода собранного сайта. Например:
themeDir
- Тип:
string - По умолчанию:
theme
Указывает директорию пользовательской темы. По умолчанию Rspress использует директорию theme в текущей рабочей директории в качестве директории пользовательской темы. Вы можете использовать themeDir для её настройки. Например:
Эта конфигурация поддерживает как относительные, так и абсолютные пути, при этом относительные пути отсчитываются от текущей рабочей директории.
Подробнее о пользовательских темах см. Кастомная тема.
locales
- Тип:
Locale[]
Конфигурация интернационализации (i18n) сайта. Например:
head
- Тип:
string|[string, Record<string, string>]|(route) => string | [string, Record<string, string>] | undefined - Можно дополнять на отдельной странице через метаданные
Используется для добавления дополнительных элементов, которые будут отрендерены внутри тега <head> HTML-страницы в продакшен-режиме.
globalStyles
- Тип:
string - По умолчанию:
undefined
Используется для добавления глобальных стилей, настраивается как путь к файлу со стилями. Например:
llms
- Тип:
boolean | { remarkSplitMdxOptions?: RemarkSplitMdxOptions } - По умолчанию:
false
Включает генерацию SSG-MD для создания файлов llms.txt, llms-full.txt и Markdown-файлов для каждой страницы, что облегчает понимание вашей документации большими языковыми моделями.
llms — это экспериментальная функция. Если SSG-MD не удается включить из-за несовместимости с SSR, используйте в качестве запасного варианта @rspress/plugin-llms.
Подробное использование, параметры конфигурации и принципы реализации см. в разделе llms.txt (SSG-MD).
mediumZoom
- Тип:
boolean|{ selector?: string } - По умолчанию:
true
Включает функцию увеличения изображений по клику. По умолчанию включена, можно отключить, установив mediumZoom в false.
На нижнем уровне используется библиотека medium-zoom.
Пример использования:
search
- Тип:
searchHooks
- Тип:
string - По умолчанию:
undefined
Через параметр searchHooks можно добавить пользовательскую логику хуков во время выполнения поиска, например:
Подробную информацию о хуках можно найти в разделе Настройка поиска.
versioned
- Тип:
boolean - По умолчанию:
true
При использовании multiVersion по умолчанию для каждой версии создаётся отдельный индекс поиска, благодаря чему результаты поиска содержат только страницы из той версии, которую пользователь просматривает в данный момент. Установите versioned в false, чтобы отключить это поведение и включить в результаты поиска все версии.
codeBlocks
- Тип:
boolean - По умолчанию:
true
Включать ли содержимое блоков кода в поисковый индекс, чтобы пользователи могли искать по коду внутри блоков.
globalUIComponents
- Тип:
(string | [string, object])[] - По умолчанию:
[]
Через параметр globalUIComponents можно зарегистрировать глобальные UI-компоненты, например:
Элемент массива globalUIComponents может быть строкой (путь к файлу компонента) либо массивом, где первый элемент — путь к файлу компонента, а второй — пропсы этого компонента. Например:
Когда вы регистрируете глобальные компоненты, Rspress автоматически рендерит эти React-компоненты в теме без необходимости вручную их импортировать и использовать.
С помощью глобальных компонентов можно реализовать множество пользовательских функций, таких как:
Таким образом, содержимое компонента будет отображаться на странице темы, например, можно добавить кнопку BackToTop («наверх»).
Кроме того, глобальный компонент можно использовать для регистрации побочных эффектов, например:
Таким образом, побочные эффекты компонентов выполняются на странице темы. Они могут быть полезны в следующих сценариях:
- Перенаправление для определённых маршрутов страниц.
- Привязка события клика к тегу
imgна странице для реализации функции увеличения изображения. - Отправка данных о количестве просмотров разных страниц при смене маршрута.
- ......
multiVersion
- Тип:
{ default: string; versions: string[] }
Через параметр multiVersion можно включить поддержку нескольких версий документации, например:
Параметр default — это версия по умолчанию, а versions — список всех доступных версий.
route
- Тип:
Object
Пользовательская конфигурация маршрутов.
route.include
- Тип:
string[] - По умолчанию:
[]
Добавить в маршруты дополнительные файлы. По умолчанию в маршруты включаются только файлы из корневой директории документации. Если нужно добавить в маршруты какие-то дополнительные файлы, используйте эту опцию. Например:
Примечание: строки в массиве поддерживают glob-паттерны. Glob-выражения рассчитываются от корневой директории документации (
root) и должны включать соответствующие расширения файлов.
Мы рекомендуем использовать хук addPages в собственном плагине Rspress для добавления дополнительных файлов в маршруты — это даёт более гибкое и логичное управление путями страниц и их содержимым.
route.exclude
- Тип:
string[] - По умолчанию:
[]
Исключить некоторые файлы из маршрутов. Например:
Примечание: строки в массиве поддерживают glob-паттерны. Glob-выражения рассчитываются от корневой директории документации (
root).
route.excludeConvention
- Тип:
string[] - По умолчанию:
['**/_[^_]*']
Набор соглашений о маршрутах, введённый для удобства использования компонентов в директории docs. По умолчанию исключает все файлы, начинающиеся с _.
Если вам действительно нужны маршруты, начинающиеся с _, вы можете изменить это правило, например, задать исключение только для файлов, начинающихся с _fragment-:
route.extensions
- Тип:
string[] - По умолчанию:
['.js', '.jsx', '.ts', '.tsx', '.md', '.mdx']
Расширения файлов, которые будут включены в маршрутизацию. По умолчанию Rspress добавляет в маршруты все файлы с расширениями js, jsx, ts, tsx, md и mdx. Если нужно изменить этот список, используйте данную опцию. Например:
route.cleanUrls
- Тип:
Boolean - По умолчанию:
false
Когда cleanUrls установлен в true, генерируются чистые URL без расширения (например, /about вместо /about.html), что делает ссылки короче и красивее.
ssg
- Тип:
boolean | { experimentalWorker?: boolean; experimentalLoose?: boolean; } - По умолчанию:
true
Включает генерацию статического сайта (SSG). По умолчанию Rspress включает её, чтобы одновременно создавать клиентский рендеринг (CSR) и статические HTML-страницы (SSG).
Если ваш сайт документации нужен только в режиме клиентского рендеринга (CSR), вы можете установить ssg: false — в этом случае Rspress будет генерировать исключительно CSR-сборку.
SSG требует, чтобы исходный код поддерживал серверный рендеринг (SSR). Если код несовместим с SSR, сборка завершится ошибкой. В таком случае можно:
-
Исправить код, чтобы он стал совместим с SSR.
-
Установить
ssg: false— тогда функция SSG будет отключена.
experimentalWorker
- Тип:
boolean - По умолчанию:
false
После включения используется пул воркеров для ускорения процесса SSG и уменьшения потребления памяти. Особенно полезно для больших сайтов документации. Реализовано на базе библиотеки tinypool.
experimentalExcludeRoutePaths
- Тип:
(string | RegExp)[] - По умолчанию:
[]
Позволяет исключить отдельные страницы из процесса SSG — такие страницы будут работать только в режиме CSR. Полезно для обхода ошибок SSG на небольших проблемных страницах в крупных проектах. Активно включать эту опцию не рекомендуется.
replaceRules
- Тип:
{ search: string | RegExp; replace: string; }[] - По умолчанию:
[]
С помощью replaceRules можно задать глобальные правила замены текста для всего сайта. Правила применяются ко всем элементам: к файлам _meta.json, к метаданным, к содержимому и заголовкам документов.
languageParity
- Тип:
Object
Сканирует файлы md и mdx в корневой директории документации, проверяет наличие всех языковых версий страниц и защищает паритет языков (чтобы ни одна страница не отсутствовала на каком-либо из поддерживаемых языков).
languageParity.enable
- Тип:
boolean - По умолчанию:
false
Включить проверку паритета языков.
languageParity.include
- Тип:
string[] - По умолчанию:
[]
Указывает папки, которые нужно проверять на паритет языков. По умолчанию проверяются все файлы в корневой директории документации. Пути указываются относительно директории каждого языка. Например:
languageParity.exclude
- Тип:
string[] - По умолчанию:
[]
Исключает определённые папки и файлы из проверки на паритет языков.

