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.com/...
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.com/...` | | `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 от битых статей.