MDX — это расширение Markdown, позволяющее использовать JSX внутри Markdown-документов. Важной особенностью работы с MDX является строгая организация файловой структуры и выбор правильных названий файлов, так как это напрямую влияет на импорт, рендеринг и маршрутизацию.
Файлы MDX должны иметь расширение .mdx. Использование
других расширений, таких как .md или .js, не
позволит корректно обработать MDX-синтаксис и встроенные JSX-компоненты.
Пример корректного имени файла:
Article.mdx
При этом, соблюдение регистра символов в именах
файлов особенно важно в операционных системах, чувствительных к
регистру, таких как Linux и macOS. Например, article.mdx и
Article.mdx будут рассматриваться как разные файлы.
MDX-файлы часто используются в связке с генерацией статических сайтов или документацией, поэтому название файла играет роль в формировании URL. Общие рекомендации:
introduction-to-mdx.mdx.v2-getting-started.mdx.Файл с именем index.mdx выполняет особую функцию. Он
автоматически используется как основной файл директории при импорте или
маршрутизации:
docs/
├─ index.mdx
├─ installation.mdx
└─ usage.mdx
В данном примере при рендеринге docs/ будет
автоматически использован index.mdx. Это удобно для
создания главных страниц разделов.
MDX позволяет импортировать React-компоненты. Названия файлов компонентов, импортируемых в MDX, также критичны:
import { Button } from './components/Button';
import AlertMessage from './components/AlertMessage.mdx';
.mdx расширения при импорте компонентов
MDX обязательно, если файл не является частью сборки с поддержкой
index.mdx.В больших проектах часто используют псевдонимы для сокращения путей:
import Header from '@components/Header';
Для корректной работы необходимо, чтобы структура файлов соответствовала заданному псевдониму. Ошибки в названиях файлов приведут к невозможности разрешить путь при сборке.
Для удобства поддержки и навигации документации рекомендуется разбивать MDX-файлы по категориям:
docs/
├─ guides/
│ ├─ getting-started.mdx
│ └─ advanced-techniques.mdx
├─ api/
│ ├─ authentication.mdx
│ └─ data-fetching.mdx
└─ index.mdx
guides/ — учебные материалы и примеры.api/ — описание API и справочные материалы.index.mdx — корневая страница документации.Такое деление облегчает поддержку и позволяет инструментам генерации документации автоматически строить навигацию.
В системах типа Next.js или Gatsby название MDX-файла формирует путь к странице:
docs/getting-started.mdx → маршрут
/docs/getting-starteddocs/index.mdx → маршрут /docsЕсли требуется вложенный маршрут, создается директория с
index.mdx внутри:
docs/
└─ tutorials/
└─ index.mdx
Маршрут будет /docs/tutorials.
Корректное именование MDX-файлов не только улучшает читаемость проекта, но и предотвращает ошибки при сборке и маршрутизации. Соблюдение соглашений о регистре, использовании дефисов и разделении по категориям позволяет создавать масштабируемую документацию и упрощает поддержку кода.