Шпаргалка по синтаксису Markdown

Полный справочник элементов Markdown: базовый синтаксис (CommonMark) и расширенный (GitHub Flavored Markdown и популярные расширения). Для каждого элемента показан исходный код и результат.

Базовый синтаксис

Заголовки

Стиль ATX: от одного до шести символов #.

# Заголовок 1
## Заголовок 2
### Заголовок 3
#### Заголовок 4
##### Заголовок 5
###### Заголовок 6
Markdown

Стиль Setext (только для первых двух уровней):

Заголовок 1
===========

Заголовок 2
-----------
Markdown

Совет: ставьте пробел после # и пустую строку до и после заголовка.

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

Абзацы разделяются пустой строкой.

Первый абзац.

Второй абзац.
Markdown

Принудительный перенос строки внутри абзаца: два пробела в конце строки, обратный слэш \ или тег <br>.

Первая строка··
Вторая строка (·· — это два пробела)

Первая строка\
Вторая строка

Первая строка<br>
Вторая строка
Markdown

Результат:

Первая строка\
Вторая строка

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

СинтаксисРезультат
*курсив* или _курсив_курсив
**жирный** или __жирный__жирный
***жирный курсив***жирный курсив
**жирный и _курсив_ внутри**жирный и курсив внутри
в*нутри*словавнутрислова

Внутри слова надёжнее работает *, а не _.

Цитаты

> Простая цитата.
>
> Второй абзац цитаты.

> Внешняя цитата
>> Вложенная цитата

> #### Заголовок в цитате
> - список в цитате
> - **форматирование** тоже работает
Markdown

Результат:

Шпаргалка по синтаксису Markdown
«Заголовок в цитате» в Obsidian не сработал

Списки

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

Маркер: -, * или +.

- Первый пункт
- Второй пункт
  - Вложенный пункт
  - Ещё один
- Третий пункт
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Нумерованный список

1. Первый
2. Второй
3. Третий
   1. Вложенный
   2. Вложенный
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Нумерация может быть любой, отсчёт идёт от первого числа:

5. Начинаем с пяти
1. Будет шесть
1. Будет семь
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Другие элементы внутри списка

Содержимое пункта сдвигается на ширину маркера (обычно 2–4 пробела).

1. Пункт с абзацем.

   Продолжение пункта отдельным абзацем.

2. Пункт с цитатой:

   > Цитата внутри списка

3. Пункт с кодом:

   ```bash
   npm install
   ```
Markdown

Чтобы строка, начинающаяся с числа и точки, не стала списком, экранируйте точку: 2024\. Хороший год.

Код

Код в строке

Используйте команду `git status`.
Чтобы показать обратную кавычку, оберните в двойные: `` код с ` кавычкой ``
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Блок кода с отступом

Каждая строка с отступом 4 пробела или 1 таб:

    function hello() {
        return "Привет";
    }
Markdown

Огороженный блок кода

Три обратные кавычки ``` или три тильды ~~~:

```
обычный блок кода
```

~~~
тоже блок кода
~~~
Markdown

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

Три и более символа ***, --- или ___ на отдельной строке:

***

---

___

Результат:

Шпаргалка по синтаксису Markdown

Перед --- нужна пустая строка, иначе текст выше станет заголовком Setext.

Ссылки

Встроенные ссылки

[Текст ссылки](https://example.com)
[Ссылка с подсказкой](https://example.com "Всплывающий заголовок")
[Относительная ссылка](./docs/readme.md)
[Якорь на раздел](#цитаты)
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Ссылки-сноски (reference-style)

Прочитайте [документацию][docs] и [руководство][1].

[docs]: https://example.com/docs "Документация"
[1]: <https://example.com/guide>
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Автоссылки

<https://example.com>
<user@example.com>
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Форматированные ссылки

**[Жирная ссылка](https://example.com)**
[`ссылка-код`](https://example.com)
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Изображения

![Альтернативный текст](path/to/image.png)
![Логотип](https://example.com/logo.png "Заголовок картинки")

<!-- Изображение-ссылка -->
[![Альт](image.png)](https://example.com)

<!-- Через reference -->
![Схема][scheme]

[scheme]: images/scheme.png
Markdown

Размеры в чистом Markdown не задаются, для этого используют HTML:

<img src="image.png" alt="Описание" width="300">
HTML

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

Обратный слэш \ перед спецсимволом выводит его как текст:

\*не курсив\*
\# не заголовок
\[не ссылка\](url)
Markdown

Результат:

Шпаргалка по синтаксису Markdown

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

СимволНазвание
\обратный слэш
`обратная кавычка
*звёздочка
_подчёркивание
{ }фигурные скобки
[ ]квадратные скобки
< >угловые скобки
( )круглые скобки
#решётка
+плюс
-минус
.точка
!восклицательный знак
|вертикальная черта (в таблицах)

HTML внутри Markdown

Большинство процессоров принимают HTML-теги:

<kbd>Ctrl</kbd> + <kbd>C</kbd>
<u>подчёркнутый</u>
<sup>верх</sup> и <sub>низ</sub>
<p align="center">Текст по центру</p>
HTML

Результат:

Шпаргалка по синтаксису Markdown

Внутри блочных HTML-тегов разметка Markdown обычно не работает. Многие платформы (GitHub, GitLab) удаляют небезопасные теги и атрибуты, например <script> и style.


Расширенный синтаксис

Эти элементы не входят в исходную спецификацию. Поддержка зависит от платформы, подробности в таблице поддержки.

Таблицы

| Столбец 1 | Столбец 2 | Столбец 3 |
|-----------|-----------|-----------|
| Ячейка    | Ячейка    | Ячейка    |
| Ячейка    | Ячейка    | Ячейка    |
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Выравнивание задаётся двоеточиями в строке-разделителе:

| Слева | По центру | Справа |
|:------|:---------:|-------:|
| 1     | 2         | 3      |
| текст | **жирный**| `код`  |
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Ячейки не обязаны быть выровнены пробелами. Символ | внутри ячейки экранируется как \|. Перенос строки в ячейке делается через <br>.

Блоки кода с подсветкой

После открывающих кавычек укажите язык:

```python
def greet(name: str) -> str:
    return f"Привет, {name}"
```

```diff
- удалённая строка
+ добавленная строка
```
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Частые идентификаторы: bash, shell, python, javascript, typescript, json, yaml, html, css, sql, java, go, rust, diff, markdown, text.

Чтобы показать блок кода внутри блока кода, используйте четыре обратные кавычки снаружи.

Зачёркнутый текст

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

Результат:

Шпаргалка по синтаксису Markdown

Списки задач

- [x] Сделано
- [ ] Не сделано
- [ ] Ещё задача
  - [x] Вложенная подзадача
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Сноски

Утверждение со сноской.[^1] И ещё одна.[^note]

[^1]: Текст первой сноски.
[^note]: Сноска с именем.
    Продолжение сноски с отступом.
Markdown

Результат:

Шпаргалка по синтаксису Markdown
Шпаргалка по синтаксису Markdown

ID заголовков

Явный идентификатор (Pandoc, Markdown Extra, Kramdown, MkDocs):

### Мой заголовок {#custom-id}

[Перейти к заголовку](#custom-id)
Markdown

На GitHub ID создаются автоматически: текст в нижнем регистре, пробелы заменяются на -, знаки препинания удаляются. Пример: ## Мой Заголовок! даёт якорь #мой-заголовок.

Списки определений

Поддерживаются в Pandoc, Markdown Extra, Kramdown, MkDocs (не на GitHub):

Термин
: Определение термина.

Другой термин
: Первое определение.
: Второе определение.
Markdown

Аналог на HTML, работающий почти везде:

<dl>
  <dt>Термин</dt>
  <dd>Определение термина.</dd>
</dl>
HTML

Результат:

Шпаргалка по синтаксису Markdown

Подсветка текста

==выделенный текст==
<mark>выделенный текст</mark>
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Синтаксис ==...== работает в Obsidian, Typora, MkDocs и некоторых других редакторах. Тег <mark> надёжнее.

Подстрочный и надстрочный индекс

H~2~O         (подстрочный, расширение)
X^2^          (надстрочный, расширение)

H<sub>2</sub>O
X<sup>2</sup>
Markdown

Результат:

Шпаргалка по синтаксису Markdown
В Обсидиан первый вариант не сработал

Эмодзи

Шорткоды (GitHub, GitLab, Slack, Discord и др.):

:smile: :rocket: :white_check_mark: :warning: :+1:
Markdown

Результат:

Шпаргалка по синтаксису Markdown
В Obsidian не сработало

Эмодзи также можно вставить напрямую как символы Unicode: 🚀 ✅

Автоматические ссылки

В GFM обычные URL становятся ссылками без угловых скобок:

https://example.com
www.example.com
Markdown
Отключить автоссылку можно, обернув адрес в код: `https://example.com`.
Markdown

Отключить автоссылку можно, обернув адрес в код: https://example.com.

Формулы (LaTeX)

Поддерживаются на GitHub, GitLab, Obsidian, Jupyter, Typora и в KaTeX/MathJax:

Строчная формула: $E = mc^2$

Блочная формула:

$$
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
$$
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Диаграммы Mermaid

GitHub, GitLab, Obsidian, Notion и многие генераторы документации рисуют диаграммы из кода:

```mermaid
graph LR
    A[Начало] --> B{Условие}
    B -- Да --> C[Действие]
    B -- Нет --> D[Конец]
```
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Блоки-предупреждения (Alerts)

Синтаксис GitHub (также Obsidian callouts в похожем виде):

> [!NOTE]
> Полезная информация.

> [!TIP]
> Совет.

> [!IMPORTANT]
> Важная информация.

> [!WARNING]
> Предупреждение.

> [!CAUTION]
> Возможные негативные последствия.
Markdown

Результат:

Шпаргалка по синтаксису Markdown

Сворачиваемые блоки

Через HTML-теги <details> и <summary>. Пустая строка после </summary> нужна, чтобы Markdown внутри обработался:

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

Скрытое содержимое с **Markdown**.

- пункт 1
- пункт 2

</details>
Markdown

Результат:

Нажмите, чтобы развернуть

Скрытое содержимое с Markdown.

  • пункт 1
  • пункт 2

Комментарии

Текст, который не отображается при рендеринге:

<!-- Это HTML-комментарий -->

[//]: # (Это комментарий через пустую ссылку)
Markdown

Front matter (метаданные)

Блок YAML в самом начале файла. Используется в Jekyll, Hugo, Obsidian, MkDocs и других:

---
title: Заголовок страницы
date: 2026-10-14
tags: [markdown, шпаргалка]
---
Markdown

Таблица поддержки

ЭлементCommonMarkGitHub (GFM)GitLabObsidianPandoc
Заголовки, списки, ссылки, код✅✅✅✅✅
Таблицы❌✅✅✅✅
Зачёркивание ~~❌✅✅✅✅
Списки задач❌✅✅✅✅
Сноски❌✅✅✅✅
Подсветка синтаксиса✅*✅✅✅✅
Автоссылки без < >❌✅✅✅❌
ID заголовков {#id}❌❌❌❌✅
Списки определений❌❌❌❌✅
Подсветка ==текст==❌❌❌✅❌
Индексы ~ ~ и ^ ^❌❌❌❌✅
Эмодзи-шорткоды❌✅✅❌❌
Формулы LaTeX❌✅✅✅✅
Mermaid❌✅✅✅❌
Alerts [!NOTE]❌✅✅✅❌

* CommonMark передаёт имя языка как класс, саму подсветку делает рендерер.

Поддержка может меняться с версиями и плагинами, поэтому для конкретной платформы стоит проверить её документацию.

Поделиться:
Николай Тютин

Администратор и автор блога

Оцените автора
( 1 оценка, среднее 5 из 5 )
NICK AIR – Блог Николая Тютина
Добавить комментарий