MDX и React-компоненты
Rspress поддерживает MDX, формат создания контента, который безупречно сочетает Markdown с JSX. MDX позволяет использовать React-компоненты непосредственно в вашей документации, объединяя лаконичный синтаксис Markdown с мощью экосистемы React, что делает его идеальным для создания интерактивной, основанной на компонентах технической документации.
Что такое MDX
MDX — это сочетание синтаксиса Markdown и JSX, которое позволяет писать и использовать React-компоненты непосредственно в Markdown-документах.
Мы рекомендуем использовать расширение .mdx для всех файлов документации, что позволяет писать контент так же, как в обычном Markdown, а также импортировать и использовать встроенные компоненты, предоставляемые Rspress.
Фрагменты MDX
В MDX каждый файл .mdx компилируется в React-компонент, что означает, что его можно импортировать как обычный компонент и свободно рендерить внутри него React-компоненты. Например:
Отобразится так:
Тестирование использования MDX-фрагментов и React-компонентов.
Это фрагмент mdx.
Это компонент из tsx
Вы можете использовать встроенные компоненты, предоставляемые Rspress, или подключить сторонние библиотеки React-компонентов, чтобы обогатить документацию в файлах .mdx.
Соглашение о маршрутах
В директории docs фрагменты MDX или React-компоненты необходимо исключать из маршрутизации с помощью параметра route.exclude. Для удобства файлы, начинающиеся с символа _, по умолчанию исключаются через route.excludeConvention.
Также вы можете размещать компоненты в соседних директориях вне директории docs, например:
Отобразится так:
кнопка
Текст из MDX
Альтернативный способ: написание страниц на TSX
Отобразится так:
Это содержимое в tsx, но стили такие же, как в документации, например,@rspress/core. Однако этот текст с className="rp-not-doc"@rspress/core не будет стилизоваться
Синтаксис tsx и html затрудняет извлечение статической информации, например, индексов для локального поиска.
Поэтому рекомендуется писать основной контент документации в файлах .mdx, а файлы .tsx использовать только для интерактивного и динамического содержимого.
Требования к версиям React
Если react, react-dom или react-router-dom уже установлены в вашем проекте, Rspress будет в первую очередь использовать версию, установленную в вашем проекте, а не встроенную версию по умолчанию.

