1. Главная
  2. Блог
  3. Руководство

Шпаргалка по Markdown: синтаксис GitHub-Flavored Markdown с примерами

Шпаргалка по Markdown: заголовки, списки, ссылки, картинки, код, таблицы, списки задач, блоки-предупреждения и сноски — с готовыми примерами GFM.

Markdown — самый простой способ писать форматированный текст, который остаётся читаемым и в виде обычного текста. На нём пишут README-файлы, документацию, заметки, сообщения в чатах и статические сайты. В этой шпаргалке собран синтаксис, который вам действительно понадобится, с упором на GitHub-Flavored Markdown (GFM) — диалект, который поддерживают GitHub, GitLab, большинство инструментов документации и Markdown Preview Editor.

Любой пример ниже можно вставить в онлайн-редактор и сразу увидеть результат рядом.

Заголовки

Начните строку с одного–шести символов # и пробела. Один # — заголовок страницы, ## — раздел, ### — подраздел.

markdown# Заголовок страницы
## Раздел
### Подраздел
#### Заголовок поменьше

Используйте в документе только один заголовок # и не пропускайте уровни (например, сразу от ## к ####). Экранные дикторы и поисковые системы понимают страницу по структуре заголовков, а большинство программ предпросмотра строят по ней оглавление.

Абзацы и переносы строк

Абзац — это одна или несколько строк текста, отделённых пустой строкой. Одиночный перенос строки внутри абзаца игнорируется — строки склеиваются. Чтобы принудительно перенести строку, закончите её двумя пробелами или обратным слешем:

markdownПервая строка с двумя пробелами в конце  
Вторая строка того же абзаца.

После пустой строки начинается новый абзац.

Выделение текста

Вы пишете Вы получаете
*курсив* или _курсив_ курсив
**жирный** или __жирный__ жирный
***жирный курсив*** жирный курсив
~~зачёркнутый~~ зачёркнутый
`код в строке` код в строке

Многие редакторы, в том числе Markdown Preview Editor, поддерживают и несколько популярных расширений: ==выделение==, H~2~O для нижнего индекса, x^2^ для верхнего и эмодзи-коды вида :smile:. В сам GFM они не входят, поэтому прежде чем на них полагаться, проверьте целевую платформу.

Списки

Для маркированных списков используйте -, * или +, для нумерованных — числа. Чтобы вложить пункт, сделайте отступ в два–четыре пробела.

markdown- Молоко
- Хлеб
  - Цельнозерновой
  - Ржаной
- Кофе

1. Клонировать репозиторий
2. Установить зависимости
3. Запустить сборку

Номера в нумерованном списке не обязаны быть правильными: 1. в каждой строке всё равно превратится в 1, 2, 3. Если начать с другого числа (например, 5.), список начнётся с него.

Списки задач

Списки задач — расширение GFM, которое превращает пункты списка во флажки. Они отлично подходят для README, планов релизов и протоколов встреч.

markdown- [x] Написать черновик
- [x] Добавить скриншоты
- [ ] Опубликовать пост

Ссылки

markdown[Текст ссылки](https://example.com)
[Ссылка с подсказкой](https://example.com "Видно при наведении")
<https://example.com>

Прочитайте [руководство по установке][install].

[install]: https://example.com/docs/install

Последний вариант — ссылка-сноска (reference link): адрес задаётся один раз внизу документа, и длинные абзацы остаются читаемыми. Относительные ссылки вроде [Setup](docs/setup.md) ведут на другие файлы того же проекта; в Markdown Preview Editor они переключают на этот документ, если он открыт в другой вкладке.

Картинки

Картинки записываются как ссылки, только с восклицательным знаком впереди. Текст в квадратных скобках — альтернативный текст: опишите изображение для тех, кто его не видит.

markdown![Редактор с живым предпросмотром](images/screenshot.png)
![Логотип](https://example.com/logo.svg "Необязательная подсказка")

Если документ ссылается на локальные картинки, для предпросмотра откройте папку целиком или перетащите картинки вместе с .md-файлом — тогда программа сможет разрешить относительные пути.

Код

Код в строке оформляется одинарными обратными кавычками. Для блока оберните код в тройные обратные кавычки и укажите название языка, чтобы включить подсветку синтаксиса:

markdown```js
function greet(name) {
  return `Hello, ${name}!`;
}
```

Распространённые названия языков: js, ts, python, bash, json, yaml, html, css, sql, go, rust, diff. Если сам код содержит тройные обратные кавычки, оградите его четырьмя, как в примере выше.

Таблицы

Разделяйте столбцы вертикальной чертой, а под строкой заголовков поставьте строку из дефисов. Двоеточия в разделительной строке задают выравнивание.

markdown| Функция      | Бесплатно | Примечание            |
|:-------------|:---------:|----------------------:|
| Предпросмотр |    ✅     | Обновляется при вводе |
| Экспорт      |    ✅     | HTML, PDF, .md        |

:--- выравнивает по левому краю, :---: — по центру, ---: — по правому. Столбцы в исходнике не обязаны быть ровными, но хороший редактор помогает держать их читаемыми. В Markdown Preview Editor на панели инструментов есть кнопка «Таблица», которая вставляет готовый шаблон.

Цитаты и блоки-предупреждения

Чтобы оформить цитату, начните строки с >. GitHub также поддерживает блоки-предупреждения (alerts) — цитаты с особой первой строкой, которые отображаются как цветные выноски:

markdown> Обычная цитата.

> [!NOTE]
> Полезная информация, которую стоит знать.

> [!TIP]
> Совет, как сделать что-то лучше.

> [!WARNING]
> Срочная информация, требующая немедленного внимания.

Всего пять типов: NOTE, TIP, IMPORTANT, WARNING и CAUTION. Не злоупотребляйте ими: одно предупреждение на раздел бросается в глаза, пять подряд превращаются в шум.

Сноски

Сноски выносят побочные замечания из основного текста. Саму сноску можно определить где угодно — она всё равно появится в конце документа.

markdownMarkdown появился в 2004 году.[^1]

[^1]: Его создал Джон Грубер при участии Аарона Шварца.

Горизонтальные линии и экранирование

Три и более дефиса, звёздочки или подчёркивания на отдельной строке дают горизонтальную линию: ---. Ставьте перед ней пустую строку, иначе --- под строкой текста превратит этот текст в заголовок.

Чтобы показать символ, который Markdown иначе интерпретирует, экранируйте его обратным слешем: \*не курсив\*, \# не заголовок, \$5 (полезно, когда включены формулы).

Формулы и диаграммы

Два расширения стали стандартом в технических текстах:

  • Формулы — $E = mc^2$ для формул в строке и $$ … $$ для выключных формул. Подробнее — в руководстве о формулах в Markdown.
  • Диаграммы — блок кода с языком mermaid рисует блок-схемы, диаграммы последовательности, диаграммы Ганта и многое другое. Подробнее — в статье о диаграммах Mermaid в Markdown.

Front matter

Генераторы статических сайтов читают метаданные из блока YAML в самом начале файла:

yaml---
title: Мой пост
date: 2026-09-27
tags: [markdown, docs]
---

Хорошая программа предпросмотра скрывает этот блок, а не показывает его как текст. Markdown Preview Editor поступает именно так.

Что дальше

Знать синтаксис — половина дела, вторая половина — видеть результат прямо во время работы. Прочитайте, как смотреть Markdown онлайн, не загружая файлы, а когда документ будет готов, узнайте, как конвертировать Markdown в HTML или PDF.

Частые вопросы

Чем Markdown отличается от GitHub-Flavored Markdown?

Исходный Markdown (2004) задал основы: заголовки, выделение, списки, ссылки, картинки, код и цитаты. GitHub-Flavored Markdown — строгая спецификация на основе CommonMark, которая добавляет таблицы, списки задач, зачёркивание, автоссылки и сноски. Большинство современных инструментов следуют GFM.

Как перенести строку в Markdown без нового абзаца?

Закончите строку двумя пробелами или обратным слешем (\). Обычный перенос строки внутри абзаца считается пробелом.

Как добавить оглавление в Markdown?

Встроенного синтаксиса для оглавления в Markdown нет. Его можно написать вручную — ссылками на якоря заголовков, например [Tables](#tables). Многие инструменты создают якоря из заголовков автоматически, а в Markdown Preview Editor в расширенном редакторе есть кнопка «Оглавление по заголовкам», которая составит список за вас.

Можно ли использовать HTML внутри Markdown?

Многие программы допускают подмножество HTML, но платформы вырезают всё потенциально опасное, например скрипты и встроенные обработчики событий. Для переносимых документов предпочитайте обычный синтаксис Markdown везде, где его хватает.