Frontmatter контракт GitHub CMS: полное руководство

Каждая статья в GitHub CMS начинается с YAML frontmatter-блока — метаданных, которые определяют заголовок, описание, дату, автора, категорию, теги, тип схемы и SEO-параметры. Валидатор проверяет frontmatter при каждом push и не пропускает невалидные статьи в production.

Канонические поля

Поле Обязательное Формат Пример
title Да Строка, ≤70 символов "Frontmatter контракт"
description Да Строка, ≤160 символов "Описание статьи..."
slug Да kebab-case, ≤200 символов frontmatter-contract-guide
date Да YYYY-MM-DD 2026-05-05
author Да Строка GitHub CMS Team
category Да Строка Документация
tags Да YAML массив строк [frontmatter, yaml]
schema_type Да Article, BlogPosting, HowTo, etc. Article
layout Да article article
cover_image Нет URL изображения (PixInLink) `https://pixinlink.ru/api/v1/600x400/code-on-laptop-screen
updated Нет YYYY-MM-DD 2026-05-07
geo Нет YAML массив строк [entity1, entity2]

Legacy-алиасы (только для миграции)

Legacy Каноническое Примечание
publish_date date Миграционный алиас
categories category Миграционный алиас

Валидатор принимает legacy-поля, но предупреждает о необходимости миграции.

FAQ

Q: Что будет если не указать обязательное поле? A: Валидатор (npm run validate:content) вернёт ошибку и заблокирует деплой. Статья не попадёт в production.

Q: Можно ли использовать HTML в frontmatter? A: Нет. Frontmatter — это YAML метаданные. HTML разрешён только в Markdown-теле статьи и проходит через sanitizer.

Q: Как добавить изображение-обложку? A: Укажите поле cover_image с публичным PixInLink URL. Изображение будет использовано в Open Graph и Twitter Cards.

Проверьте свой frontmatter

Запустите npm run validate:content перед каждым push. Автоматическая валидация в GitHub Actions защитит production от битых статей.

Каждая статья в GitHub CMS начинается с YAML frontmatter-блока — метаданных, которые определяют заголовок, описание, дату, автора, категорию, теги, тип схемы и SEO-параметры. Валидатор проверяет frontmatter при каждом push и не пропускает невалидные статьи в production.

Канонические поля

Поле Обязательное Формат Пример
title Да Строка, ≤70 символов "Frontmatter контракт"
description Да Строка, ≤160 символов "Описание статьи..."
slug Да kebab-case, ≤200 символов frontmatter-contract-guide
date Да YYYY-MM-DD 2026-05-05
author Да Строка GitHub CMS Team
category Да Строка Документация
tags Да YAML массив строк [frontmatter, yaml]
schema_type Да Article, BlogPosting, HowTo, etc. Article
layout Да article article
cover_image Нет URL изображения (PixInLink) `https://pixinlink.ru/api/v1/600x400/code-on-laptop-screen
updated Нет YYYY-MM-DD 2026-05-07
geo Нет YAML массив строк [entity1, entity2]

Legacy-алиасы (только для миграции)

Legacy Каноническое Примечание
publish_date date Миграционный алиас
categories category Миграционный алиас

Валидатор принимает legacy-поля, но предупреждает о необходимости миграции.

FAQ

Проверьте свой frontmatter

Запустите npm run validate:content перед каждым push. Автоматическая валидация в GitHub Actions защитит production от битых статей.