Markdown в GitHub CMS: полный синтаксис и возможности

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 сохраняются
Изображения ![alt](url) PixInLink URL или любые публичные URL
Списки - пункт Вложенные списки поддерживаются
Таблицы | A | B | Стандартный GitHub-flavored Markdown
Код `inline`, ```блок``` Подсветка через атрибут языка
Горизонтальная линия --- Только вне frontmatter

Ограничения HTML

HTML в Markdown проходит через санитайзер sanitize-html. Разрешены только безопасные теги:

  • a, img, section, article, p, h2-h6
  • ul, ol, li, table, thead, tbody, tr, td, th
  • strong, em, code, pre, blockquote
  • div, spanid и 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. Все изменения применяются мгновенно.

GitHub CMS расширяет стандартный Markdown тремя ключевыми возможностями: YAML frontmatter для метаданных, специальные блоки для структурирования контента, и публичные PixInLink URL для генерации изображений. Всё остальное — стандартный Markdown с безопасным HTML-санитайзером.
## Структура Markdown-файла ```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 сохраняются | | Изображения | `![alt](url)` | PixInLink URL или любые публичные URL | | Списки | `- пункт` | Вложенные списки поддерживаются | | Таблицы | `\| A \| B \|` | Стандартный GitHub-flavored Markdown | | Код | `` `inline` ``, ```` ```блок``` ```` | Подсветка через атрибут языка | | Горизонтальная линия | `---` | Только вне frontmatter | ## Ограничения HTML HTML в Markdown проходит через санитайзер `sanitize-html`. Разрешены только безопасные теги: - `a`, `img`, `section`, `article`, `p`, `h2`-`h6` - `ul`, `ol`, `li`, `table`, `thead`, `tbody`, `tr`, `td`, `th` - `strong`, `em`, `code`, `pre`, `blockquote` - `div`, `span` (с `id` и `class`) Запрещены: `