GitHub CMS расширяет стандартный Markdown тремя ключевыми возможностями: YAML frontmatter для метаданных, специальные блоки для структурирования контента, и публичные PixInLink URL для генерации изображений. Всё остальное — стандартный Markdown с безопасным HTML-санитайзером.
Структура Markdown-файла
---
title: "Заголовок статьи"
description: "Описание для SEO и превью"
slug: "url-статьи"
date: "2026-05-08"
author: "Имя автора"
category: "Категория"
tags:
- тег1
- тег2
schema_type: "Article"
layout: "article"
cover_image: "https://pixinlink.com/1200x630/fff/111?prompt=..."
---
(блок: answer-first)
Краткий ответ на главный вопрос статьи.
(блок: key-facts)
## Ключевые факты
- Факт 1
- Факт 2
(блок: faq)
## FAQ
**Q: Вопрос?**
**A:** Ответ.
(блок: cta)
Призыв к действию.
Поддерживаемые элементы Markdown
| Элемент | Синтаксис | Примечание |
|---|---|---|
| Заголовки | ## H2, ### H3 |
H1 — только title из frontmatter |
| Жирный | **текст** |
|
| Курсив | *текст* |
|
| Ссылки | [текст](url) |
target и rel сохраняются |
| Изображения |  |
PixInLink URL или любые публичные URL |
| Списки | - пункт |
Вложенные списки поддерживаются |
| Таблицы | | A | B | |
Стандартный GitHub-flavored Markdown |
| Код | `inline`, ```блок``` |
Подсветка через атрибут языка |
| Горизонтальная линия | --- |
Только вне frontmatter |
Ограничения HTML
HTML в Markdown проходит через санитайзер sanitize-html. Разрешены только безопасные теги:
a,img,section,article,p,h2-h6ul,ol,li,table,thead,tbody,tr,td,thstrong,em,code,pre,blockquotediv,span(сidиclass)
Запрещены: <script>, <iframe>, <style>, onclick, javascript: URL.
FAQ
Q: Можно ли использовать HTML-таблицы вместо Markdown-таблиц?
A: Да, санитайзер пропускает table, thead, tbody, tr, td, th. Но лучше использовать Markdown-таблицы — они читаются в исходном коде.
Q: Как вставить видео с YouTube?
A: YouTube использует <iframe>, который запрещён санитайзером. Альтернатива: вставьте ссылку на видео и превью-изображение через PixInLink.
Q: Что если я вставлю запрещённый HTML? A: Санитайзер удалит запрещённые теги, оставив только текстовое содержимое. Статья соберётся, но без опасного HTML.
Проверьте свой Markdown
Создайте тестовый файл в content/blog/ и запустите npm run dev. Все изменения применяются мгновенно.