Frontmatter — это специальный блок метаданных, расположенный в начале
MDX-файла, который используется для хранения структурированной
информации о документе. Этот блок оформляется в формате YAML и ограничен
тройными дефисами ---. Он позволяет задавать свойства,
такие как заголовок, автор, дата создания, теги, категории, и другие
данные, которые могут быть использованы при генерации документации,
статических сайтов или в динамических приложениях на основе MDX.
---
title: "Пример статьи на MDX"
author: "Иван Иванов"
date: "2026-03-23"
tags:
- javascript
- mdx
- frontmatter
draft: false
---
Расположение: Frontmatter должен находиться строго в начале MDX-файла. Любой текст или компоненты до блока YAML сделают его недействительным.
Формат YAML: Все данные внутри frontmatter должны соответствовать синтаксису YAML. Это означает:
- с пробелом после
него.true или false
без кавычек.Типы данных: Frontmatter поддерживает различные типы данных:
title: "Заголовок статьи")version: 1.0)draft: false)tags: [ "mdx", "javascript" ])author: { name: "Иван", email: "ivan@example.com" })Использование в коде: MDX-компоненты и
генераторы статических сайтов (например, Next.js с
@next/mdx) автоматически извлекают frontmatter. Пример
использования в React-компоненте:
import { useMDXComponent } from 'next-contentlayer/hooks';
import { allPosts } from '.contentlayer/data';
export default function Post({ post }) {
const MDXContent = useMDXComponent(post.body.code);
return (
<article>
<h1>{post.title}</h1>
<p>Автор: {post.author}</p>
<MDXContent />
</article>
);
}
// Получение frontmatter
const post = allPosts.find(p => p.slug === 'primer-stati');
console.log(post.title); // Пример статьи на MDX
const drafts = allPosts.filter(post => post.draft);
readingTime,
summary, categories. Главное — следить за
корректным синтаксисом YAML:---
title: "MDX и Frontmatter"
summary: "Разбор frontmatter в MDX"
readingTime: 5
categories: ["javascript", "mdx"]
---
next-mdx-remote
или Contentlayer позволяет автоматически извлекать frontmatter для
генерации страниц и списков постов.gatsby-plugin-mdx
считывает frontmatter, обеспечивая создание GraphQL-узлов для каждой
статьи. Это позволяет запрашивать метаданные через GraphQL-запросы.---
title: "Продвинутое использование MDX"
author:
name: "Анна Петрова"
email: "anna@example.com"
categories:
- frontend
- mdx
metadata:
version: 2
draft: false
---
---
title: "Сложный frontmatter"
contributors:
- name: "Иван Иванов"
role: "Автор"
- name: "Мария Смирнова"
role: "Редактор"
---
Такой подход позволяет создавать гибкие и структурированные данные для использования в любом MDX-экосистемном инструменте.
Frontmatter — это мощный инструмент, который превращает MDX-файл из простого документа в полноценный контентный объект с метаданными, управляемыми на уровне приложения.