For AI agents: the complete documentation index is available at /rspress-russian/llms.txt, the full documentation bundle is available at /rspress-russian/llms-full.txt, and this page is available as Markdown at /rspress-russian/guide/use-mdx/components.md.
close

MDX и React-компоненты

Rspress поддерживает MDX, формат создания контента, который бесшовно объединяет Markdown с JSX. MDX позволяет использовать компоненты React напрямую в вашей документации, сочетая лаконичный синтаксис Markdown с экосистемой React. Он идеально подходит для создания интерактивной, компонентно-ориентированной технической документации.

Что такое MDX

MDX объединяет синтаксис Markdown и JSX, поэтому вы можете писать контент Markdown и использовать компоненты React в одном файле.

Мы рекомендуем использовать .mdx для всех файлов документации. Это позволяет использовать в качестве контента обычный Markdown, но при этом импортировать и использовать встроенные компоненты, предоставляемые Rspress.

docs/index.mdx
# Привет, мир!

import { PackageManagerTabs } from '@rspress/core/theme';

<PackageManagerTabs command="create rspress@latest" />

Фрагменты MDX

Каждый файл .mdx компилируется в React-компонент, что означает, что его можно импортировать как обычный компонент и свободно рендерить внутри него React-компоненты. Например:

docs/index.mdx
docs/_mdx-fragment.mdx
docs/_tsx-component.tsx
import MdxFragment from './_mdx-fragment.mdx';
import TsxComponent from './_tsx-component';

Тестирование использования MDX-фрагментов и React-компонентов.

<MdxFragment />

<TsxComponent />

Это отображается как:

Тестирование использования MDX-фрагментов и React-компонентов.

Это фрагмент mdx.

Это компонент из tsx

В файлах .mdx вы можете использовать встроенные компоненты, предоставляемые Rspress, или устанавливать библиотеки компонентов React, чтобы обогатить вашу документацию.

Соглашение о маршрутах

В директории документации MDX-фрагменты или React-компоненты должны быть исключены из маршрутизации с помощью route.exclude. Для удобства файлы, начинающиеся с _, исключаются по умолчанию через route.excludeConvention.

Также вы можете размещать компоненты в соседних директориях вне директории docs. Например:

docs
├── _button.mdx
└── index.mdx
components
└── button.tsx
docs/index.mdx
docs/_button.mdx
docsite/components/button.tsx
import ButtonFragment from './_button.mdx';
import Button from '../../components/button';

<ButtonFragment />
<Button />

Это отображается так:

кнопка

Текст из MDX

Альтернативный способ: написание страниц на TSX

_escape-hatch.tsx
import { getCustomMDXComponent } from '@rspress/core/theme';

export default () => {
  const { p: P, code: Code } = getCustomMDXComponent();
  return (
    <P className="rp-doc">
      Это содержимое в tsx, но стили такие же, как в документации, например,
      <Code>@rspress/core</Code>. Однако этот текст с className="rp-not-doc"
      <Code className="rp-not-doc">@rspress/core</Code> не будет стилизоваться
    </P>
  );
};

Это отображается как:

Это содержимое в tsx, но стили такие же, как в документации, например,@rspress/core. Однако этот текст с className="rp-not-doc"@rspress/core не будет стилизоваться

Предупреждение

Синтаксис TSX и HTML затрудняет извлечение статической информации, например, индексов для локального поиска.

Мы рекомендуем использовать файлы .mdx для содержимого документов и файлы .tsx для интерактивного динамического контента.

Требования к версиям React

ЗависимостьДопустимый диапазонВерсия по умолчаниюПримечания
react`^18.0.0^19.0.0`
react-dom`^18.0.0^19.0.0`
react-router-dom`^6.0.0^7.0.0`
Совет

Если react, react-dom или react-router-dom уже установлены в вашем проекте, Rspress будет в первую очередь использовать версию, установленную в вашем проекте, а не встроенную версию по умолчанию.