MDX сочетает возможности Markdown и JSX, что позволяет создавать сложные структуры документации с интерактивными компонентами. Списки в MDX работают аналогично Markdown, но обладают дополнительной гибкостью благодаря интеграции с JSX-компонентами.
Нумерованные и маркированные списки создаются стандартными способами:
1. Первый элемент
2. Второй элемент
3. Третий элемент
- Пункт A
- Пункт B
- Пункт C
Нумерованные списки поддерживают автоматическую последовательность, а
маркированные списки могут использовать -, *
или + в качестве маркеров. Важный момент: для корректного
рендеринга вложенных списков необходимо соблюдать отступы — обычно 2–4
пробела или один таб.
Вложенность списков в MDX позволяет создавать многоуровневые структуры, комбинируя нумерованные и маркированные списки. Пример корректного синтаксиса:
1. Элемент первого уровня
- Подпункт A
- Подпункт B
1. Подподпункт 1
2. Подподпункт 2
2. Второй элемент
Ключевые правила вложенности:
-, *, +)
и нумерации возможно, но последовательность вложенности должна быть
логичной для читателя и рендерера.- Пункт с компонентом
MDX позволяет вставлять JSX внутри элементов списка, что открывает новые возможности для интерактивной документации. Компоненты могут быть встроены как отдельные блоки, так и inline:
1. Пункт с inline-компонентом
2. Пункт с блоковым компонентом:
Важное предупреждение!
Особенности работы с JSX внутри списков:
Элементы списка могут содержать не только текст, но и целые блоки Markdown или MDX:
- Пункт с абзацем
Дополнительный текст, который продолжается на новой строке с отступом.
- Пункт с кодом
```javascript
function greet(name) {
return `Привет, ${name}!`;
}
**Важно:**
- Абзацы внутри элементов списка должны иметь пустую строку перед ними и корректный отступ.
- Блоки кода требуют дополнительного отступа на 2 пробела относительно маркера списка, иначе рендерер может не распознать их как часть элемента.
---
### Практические советы по структуре списков в MDX
1. **Поддерживать единообразие маркеров:** избегать смешивания `-`, `*`, `+` на одном уровне вложенности.
2. **Соблюдать отступы:** особенно при вставке блоков JSX и многострочных абзацев.
3. **Использовать нумерованные списки для пошаговых инструкций**, а маркированные для перечислений без строгого порядка.
4. **Не забывать про совместимость с Markdown-рендерерами**, если MDX будет преобразовываться в HTML или другие форматы.
---
### Комбинация списков и компонентов
Вложенные списки идеально сочетаются с компонентами, что позволяет создавать сложные интерфейсы внутри документации:
```mdx
1. Установите пакет
npm install mdx-package
2. Импортируйте компонент
import { Component } from 'mdx-package';
3. Используйте компонент в списке
- Первый пример
- Второй пример
Такой подход упрощает создание интерактивных учебников и документации, где каждый шаг сопровождается демонстрацией кода и компонентами интерфейса.