@rspress/plugin-playground
Предоставляет интерактивную песочницу с возможностью редактирования в реальном времени для предварительного просмотра компонентов в блоках кода MDX-файлов.
Этот плагин можно использовать вместе с @rspress/plugin-preview. В отличие от plugin-preview, plugin-playground компилирует код в браузере, поэтому имеет больше ограничений (например, не поддерживает импорт модулей из локальных файлов). Рекомендуется использовать plugin-playground как дополнение к plugin-preview для сценариев, требующих редактирования кода в реальном времени.
Установка
Использование
1. Регистрация плагина
Сначала добавьте следующую конфигурацию в конфигурационный файл:
2. Использование в mdx-файлах
Используйте синтаксис ```tsx playground в mdx-файлах:
Результат рендеринга выглядит следующим образом:
- В настоящее время работает только в файлах
.mdx. - Необходимо экспортировать компонент как
default, и Rspress автоматически отрендерит этот компонент. - При использовании tsx проверка типов в настоящее время не выполняется.
3. Написание кода компонента в других файлах (опционально)
Помимо написания кода компонента в блоке кода mdx-файла, вы также можете использовать его вместе с Блоком кода файла для написания примера кода в других файлах.
Результат рендеринга выглядит следующим образом:
Настройка направления макета
Вы можете использовать параметр direction для указания направления макета редактора и области предварительного просмотра. Поддерживаются horizontal или vertical.
direction="horizontal"
Горизонтальный макет является режимом по умолчанию, при котором редактор и область предварительного просмотра располагаются бок о бок.
Синтаксис:
direction="vertical"
Вертикальный режим макета, при котором редактор и область предварительного просмотра располагаются друг над другом сверху вниз.
Синтаксис:
Результат рендеринга выглядит следующим образом:
Определение макета всей страницы
Вы можете указать playgroundDirection в метаданных для определения макета редактора и области предварительного просмотра для всей страницы.
Приоритет: Определение непосредственно в блоке кода > Определение в метаданных страницы > Конфигурация плагина.
Опции
Этот плагин принимает объект конфигурации со следующим определением типа:
defaultRenderMode
- Тип:
'pure' | 'playground' - По умолчанию:
'pure'
Настраивает поведение рендеринга по умолчанию для блоков кода, которые явно не объявляют pure или playground.
```tsx pure: Отображается как обычный блок кода```tsx: Отображается в соответствии с конфигурациейdefaultRenderMode```tsx playground: Отображается как редактируемый компонент песочницы
Не рекомендуется изменять значение по умолчанию, поскольку это может повлиять на совместное использование с @rspress/plugin-preview.
defaultDirection
- Тип:
'horizontal' | 'vertical' - По умолчанию:
'horizontal'
Настраивает направление макета по умолчанию редактора и области предварительного просмотра.
editorPosition
- Тип:
'left' | 'right' - По умолчанию:
'left'
Настраивает положение редактора в горизонтальном макете (слева/справа).
babelUrl
- Тип:
string - По умолчанию:
'https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/7.22.20/babel.min.js'
Песочница использует @babel/standalone для компиляции демонстрационного кода. Вы можете изменить его на URL, предоставленный другими CDN, такими как unpkg, jsdelivr и т. д.
monacoLoader
Настраивает поведение загрузчика monaco. По умолчанию загружается с cdnjs.com.
Вы можете изменить его на URL, предоставленный другими CDN, такими как unpkg, jsdelivr и т.д.
Полная документация доступна на suren-atoyan/monaco-loader.
monacoOptions
Настраивает опции Monaco Editor.
monacoLoader и monacoOptions будут сериализованы в JSON, поэтому некоторые типы данных, такие как функции и объекты с циклическими ссылками, не поддерживаются.
include
- Тип:
Array<string | [string, string]>
По умолчанию этот плагин автоматически сканирует все операторы import в демо; пакеты, не используемые в демо, нельзя использовать в песочнице. Если вы хотите добавить другие пакеты в песочницу, вы можете использовать параметр include:
render
- Тип:
string
Вы можете настроить файл рендеринга для отображения песочницы. Обратите внимание, что имя файла должно быть Playground.(jsx?|tsx?).
В пользовательской песочнице вы можете напрямую импортировать оригинальный редактор и рендерер, а также импортировать предварительно упакованные зависимости через _rspress_playground_imports:
Для настройки вы можете обратиться к встроенному компоненту Playground.tsx.

