Шпаргалка по Markdown: весь синтаксис с примерами

Обновлено

Markdown — простой язык разметки: обычный текст с символами вроде # и **, который превращается в оформленный документ на GitHub, в редакторах заметок и на сайтах документации. Здесь собран весь синтаксис Markdown с примерами: краткая таблица и подробный справочник, где рядом с каждым фрагментом виден результат. Есть расширения GitHub Flavored Markdown и диаграммы mermaid; любой пример можно скопировать в один клик.

Эта страница на других языках: English · Tiếng Việt · Español · Português (Brasil)

Синтаксис Markdown в одной таблице

ЭлементСинтаксисПримечание
Заголовок
# H1  ## H2  ### H3
До шести #; после них нужен пробел.
Жирный
**жирный текст**
Курсив
*курсив* или _курсив_
Жирный курсив
***оба сразу***
Зачёркивание
~~удалено~~
GitHub Flavored Markdown (GFM).
Код в строке
`код`
Блок кода
```js
code
```
Слово после обратных кавычек задаёт язык подсветки.
Ссылка
[текст](https://example.com)
Изображение
![описание картинки](image.png)
Маркированный список
- пункт
* и + тоже работают.
Нумерованный список
1. пункт
Список задач
- [ ] сделать
- [x] готово
GFM.
Цитата
> текст цитаты
Таблица
| A | B |
| --- | --- |
| 1 | 2 |
GFM. Двоеточия во второй строке задают выравнивание.
Горизонтальная линия
---
Перенос строки
строка один\
строка два
Обратная косая черта или два пробела в конце строки.
Сноска
Текст[^1]

[^1]: Примечание.
GFM.
Экранирование символа
\*не курсив\*
Обратная косая черта перед любым символом разметки.
Диаграмма
```mermaid
flowchart LR
  A --> B
```
Отображается на GitHub, GitLab и в Docs MD.

Заголовки

Шесть уровней

# H1 — заголовок страницы
## H2 — раздел
### H3 — подраздел
#### H4
##### H5
###### H6

H1 — заголовок страницы

H2 — раздел

H3 — подраздел

H4

H5
H6

По соглашению в документе один H1. Альтернативный «подчёркнутый» синтаксис (=== / ---) есть только для H1 и H2 — лучше использовать #.

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

Жирный, курсив, оба сразу

**жирный** и *курсив* и ***жирный курсив***

жирный и курсив и жирный курсив

Подчёркивания тоже работают (__жирный__, _курсив_), но звёздочки срабатывают и внутри слова: вос**хит**ительно.

Зачёркивание (GFM)

~~зачёркнуто~~

зачёркнуто

Списки

Маркированный

- Первый пункт
- Второй пункт
  - Вложенный (отступ 2 пробела)
- Третий пункт
  • Первый пункт
  • Второй пункт
    • Вложенный (отступ 2 пробела)
  • Третий пункт

Нумерованный

1. Шаг один
2. Шаг два
1. Какие цифры вы пишете, неважно — нумерацию считает программа
  1. Шаг один
  2. Шаг два
  3. Какие цифры вы пишете, неважно — нумерацию считает программа

Список задач (GFM)

- [x] Выпустить фичу
- [ ] Написать документацию
- [ ] Рассказать коллегам
  • Выпустить фичу
  • Написать документацию
  • Рассказать коллегам

Код

Код в строке

Выполните `npm install` перед `npm run dev`.

Выполните npm install перед npm run dev.

Блок кода с указанием языка

```ts
function greet(name: string) {
  return `Hello, ${name}`;
}
```
function greet(name: string) {
  return `Hello, ${name}`;
}

Метка языка после ``` включает подсветку синтаксиса. Частые метки: js, ts, python, bash, json, sql, diff.

Блок кода внутри блока кода

````md
Чтобы показать блок кода внутри блока кода,
оберните его снаружи большим числом обратных кавычек:
```js
console.log("nested");
```
````

Таблицы (GFM)

Простая таблица с выравниванием

| Слева | По центру | Справа |
| :--- | :----: | ----: |
| a    |   b    |     c |
| d    |   e    |     f |
СлеваПо центруСправа
abc
def

Двоеточия в строке-разделителе управляют выравниванием. Вертикальную черту внутри ячейки экранируйте: \|.

Цитаты

Цитата и вложенность

> Абзац в цитате.
>
> > Вложенные цитаты тоже работают.
>
> Снова первый уровень — **форматирование внутри работает**.

Абзац в цитате.

Вложенные цитаты тоже работают.

Снова первый уровень — форматирование внутри работает.

Начинайте каждую строку с > (одиночный > удерживает цитату из нескольких абзацев вместе). GitHub превращает цитаты с > [!NOTE] / [!WARNING] в цветные плашки.

Плашки-предупреждения (GitHub)

Цитата, первая строка которой — [!TYPE], отображается на GitHub как цветная плашка. Типов пять: NOTE, TIP, IMPORTANT, WARNING, CAUTION.

Пять типов плашек

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

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

> [!IMPORTANT]
> Ключевая информация, без которой не обойтись.

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

> [!CAUTION]
> Негативные последствия действия.

Note Полезная информация, которую стоит знать читателю.

Tip Совет, как сделать что-то лучше.

Important Ключевая информация, без которой не обойтись.

Warning Срочная информация, требующая немедленного внимания.

Caution Негативные последствия действия.

Отображаются цветными блоками со значками на GitHub (README, issues, PR, discussions) и GitLab. Во всех остальных местах — предпросмотр VS Code, Slack, Discord, Notion, большинство генераторов статических сайтов — внутри обычной цитаты виден буквальный текст «[!NOTE]»; примерно это и показывает предпросмотр справа.

Структура и отступы

Горизонтальная линия

Над линией.

---

Под линией.

Над линией.


Под линией.

Три или больше дефиса на отдельной строке, с пустыми строками до и после (иначе --- под текстом превратит его в H2).

Перенос строки и новый абзац

Поставьте в конце строки два пробела  
и получите перенос внутри абзаца.

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

Поставьте в конце строки два пробела
и получите перенос внутри абзаца.

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

Обратная косая черта в конце строки тоже делает перенос, и её заметнее, чем пробелы в конце.

Экранирование символов

\*не курсив\* и \# не заголовок и \| не разделитель таблицы

*не курсив* и # не заголовок и | не разделитель таблицы

Сноски (GFM)

Ссылка на сноску и её текст

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

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

Markdown появился в 2004 году.1

Footnotes

  1. Его создал Джон Грубер, а Аарон Шварц участвовал в разработке синтаксиса. ↩

Поддерживаются на GitHub и в большинстве современных программ; в исходном markdown сносок не было.

Эмодзи

Короткие коды и сами эмодзи

Выкатываем :tada: :rocket: — или вставьте сам символ: 🎉 🚀

Коды вроде :tada: — не часть markdown: их разворачивают GitHub, GitLab, Slack и Discord, а программы на CommonMark, предпросмотр VS Code и большинство генераторов статических сайтов выводят двоеточия как есть. Сам символ эмодзи работает везде.

Диаграммы mermaid

Блок-схема в блоке кода

```mermaid
graph LR
  A[Пишу markdown] --> B{Поделиться?}
  B -->|да| C[Получить ссылку]
  B -->|нет| D[Оставить у себя]
```

Поддерживается на GitHub, GitLab и на страницах Docs MD, открытых по ссылке. Также доступны диаграммы последовательностей, диаграммы Ганта и ER-диаграммы.

Встроенный HTML

Когда возможностей markdown не хватает

В markdown нет подчёркивания, поэтому используйте <u>HTML</u>, <sub>нижний индекс</sub>, <sup>верхний индекс</sup> или <kbd>Ctrl</kbd>+<kbd>C</kbd>.

В markdown нет подчёркивания, поэтому используйте <u>HTML</u>, <sub>нижний индекс</sub>, <sup>верхний индекс</sup> или <kbd>Ctrl</kbd>+<kbd>C</kbd>.

Большинство программ пропускают HTML (GitHub вырезает скрипты и стили). Предпросмотр на этой странице удаляет сырой HTML, поэтому проверяйте результат на целевой платформе.

Клавиши через <kbd>

Нажмите <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd>, чтобы открыть палитру команд.

GitHub оформляет <kbd> как маленькую клавишу. В самом markdown синтаксиса для клавиш нет; обратные кавычки (`Ctrl`) — запасной вариант, который работает везде.

Сворачиваемый блок через <details>

<details>
<summary>Нажмите, чтобы развернуть</summary>

Скрытый текст — **markdown здесь работает**, если оставить пустую строку после summary.

</details>

Поддерживается на GitHub, GitLab и большинстве сайтов документации. Чтобы блок был раскрыт сразу, напишите <details open>. В Slack, Discord и Notion не работает.

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

Что такое шпаргалка по Markdown?

Это справочник на одной странице: каждый элемент markdown с синтаксисом и отображаемым результатом рядом, чтобы копировать точные символы, а не угадывать. Здесь собраны базовый markdown, GitHub Flavored Markdown (таблицы, списки задач, зачёркивание, сноски) и диаграммы mermaid.

Как сделать жирный текст или курсив в markdown?

Для жирного оберните текст двойными звёздочками (**жирный**), для курсива — одинарными звёздочками или подчёркиваниями (*курсив* или _курсив_). Тройные звёздочки дают жирный курсив. На GitHub подчёркивания внутри слова не включают выделение, поэтому звёздочки надёжнее.

Как вставить ссылку или картинку?

Ссылка пишется как [текст](https://example.com), а картинка — так же, но с восклицательным знаком в начале: ![описание](image.png). Всплывающую подсказку можно добавить заголовком в кавычках после URL. Ссылки-сноски ([текст][id] и строка [id]: url отдельно) делают длинные документы читабельнее.

Как оформить блок кода?

Поместите код между двумя строками из трёх обратных кавычек. Чтобы включить подсветку синтаксиса, укажите язык сразу после открывающих кавычек (```js). Для кода внутри строки используйте одинарные обратные кавычки.

Как сделать таблицу в markdown?

Разделяйте столбцы вертикальной чертой и добавьте под строкой заголовков строку из дефисов. Двоеточия в этой строке задают выравнивание: :--- по левому краю, :---: по центру, ---: по правому. Таблицы — расширение GFM, их поддерживают GitHub, GitLab и большинство программ.

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

GitHub Flavored Markdown (GFM) — это исходный markdown плюс таблицы, списки задач, зачёркивание, автоссылки и сноски, с формальной спецификацией на основе CommonMark. GFM поддерживают почти все современные программы, поэтому обычно под «markdown» имеют в виду именно его. Сам GitHub добавляет поверх GFM плашки-предупреждения, коды эмодзи и mermaid.

Какой Markdown работает в Slack, Discord и Notion?

У каждого свой диалект. Discord поддерживает большую часть основ (**жирный**, *курсив*, блоки кода, заголовки, цитаты), но не таблицы и картинки, а __подчёркивания__ дают подчёркнутый текст. Slack — вообще не markdown: *одинарные звёздочки* дают жирный, _подчёркивания_ курсив, ~тильды~ зачёркивание, а ссылки [текст](url) работают только в поле ввода при включённой настройке разметки. Notion преобразует markdown при наборе и вставке, включая таблицы и списки задач. Перед вставкой сверяйтесь со справкой по конкретной платформе.

Как сделать перенос строки в markdown?

Одиночный перевод строки в markdown склеивается в один абзац. Чтобы перенести строку внутри абзаца, поставьте в конце строки обратную косую черту или два пробела; чтобы начать новый абзац, оставьте пустую строку.

Чем открыть файл .md, чтобы увидеть оформление?

В текстовом редакторе вроде Блокнота или TextEdit файл .md выглядит как текст с символами # и *. Чтобы увидеть заголовки, таблицы и код оформленными, откройте его в просмотрщике markdown — например, онлайн на docs-md.com или в редакторе с предпросмотром, таком как VS Code.