Changelog в контексте MDX представляет собой систематизированный журнал изменений, отражающий эволюцию документации, компонентов и функциональности приложения. В отличие от обычного текста, MDX позволяет комбинировать Markdown и JSX, что делает Changelog интерактивным, структурированным и легко поддерживаемым.
В MDX Changelog часто строится вокруг версий проекта. Каждая версия сопровождается списком изменений, разделенных по категориям. Стандартная структура включает:
## [Версия 1.2.0] - 2026-03-01
### Добавлено
- Новый компонент `<TableSortable>` для интерактивных таблиц.
- Поддержка темной темы в `<CodeBlock>`.
### Изменено
- Обновлен парсер Markdown для корректного рендеринга вложенных списков.
- Оптимизирован процесс сборки статики.
### Исправлено
- Исправлена ошибка с некорректной подгрузкой изображений в Safari.
- Устранен баг с ререндером `<Chart>` при изменении пропсов.
Ключевые моменты:
## [Версия] - Дата — заголовок уровня 2, указывающий
конкретный релиз.### Добавлено, ### Изменено,
### Исправлено — категории изменений.MDX позволяет вставлять JSX внутри Markdown, что дает возможность добавлять в Changelog динамические элементы:
### Добавлено
<TableSortable data={changelogData} />
<Notice type="info">
Эта версия включает обновления безопасности.
</Notice>
Такой подход делает Changelog не просто статическим текстом, а живым документом, который может отображать данные напрямую из состояния приложения или внешних JSON-файлов.
Часто Changelog формируется на основе внешних источников — JSON или Markdown файлов. Пример подключения данных:
import changelogData from './changelog.json';
export default function Changelog() {
return (
<div>
{changelogData.map((version) => (
<section key={version.number}>
<h2>{version.number} - {version.date}</h2>
{Object.entries(version.changes).map(([category, items]) => (
<div key={category}>
<h3>{category}</h3>
<ul>
{items.map((item, index) => <li key={index}>{item}</li>)}
</ul>
</div>
))}
</section>
))}
</div>
);
}
Это позволяет:
Next.js или Gatsby.MDX поддерживает расширенное форматирование, что важно для Changelog:
**важно** или
<strong>важно</strong>[PR #42](https://github.com/...)console.log('Версия 1.2.0 выпущена!');
<Notice type="warning">...</Notice>.MDX отлично интегрируется с инструментами автоматизации:
git log с помощью
changelog-generator.Пример автоматического преобразования JSON в MDX:
import fs from 'fs';
import { jsonToMdx } from 'mdx-changelog-utils';
const changelog = JSON.parse(fs.readFileSync('changelog.json', 'utf-8'));
const mdxContent = jsonToMdx(changelog);
fs.writeFileSync('CHANGELOG.mdx', mdxContent);
MAJOR.MINOR.PATCH) для удобства отслеживания.Changelog в MDX — это не просто текст, а структурированный, динамичный и расширяемый документ, который упрощает сопровождение и визуализацию изменений проекта.