Шпаргалка по Markdown
Последнее обновление
Заголовки
Ставьте пробел после знаков #. Количество знаков задаёт уровень, от 1 до 6.
| Элемент | Markdown | Результат |
|---|---|---|
| Заголовок 1 | # Page title | Заголовок верхнего уровня, <h1> |
| Заголовок 2 | ## Section | Заголовок раздела, <h2> |
| Заголовок 3 | ### Subsection | Заголовок подраздела, <h3> |
| Заголовки с 4 по 6 | #### Level 4
##### Level 5
###### Level 6 | <h4>, <h5> и <h6> |
| Заголовок 1, другой вариант | Page title
========== | <h1>, то же, что # Page title |
| Заголовок 2, другой вариант | Section
------- | <h2>, то же, что ## Section |
| Закрывающие решётки | ## Section ## | <h2>Section</h2>; знаки # в конце отбрасываются |
| Нет пробела | #Not a heading | Обычный абзац. Пробел после # обязателен |
Жирный, курсив и зачёркивание
Звёздочки работают где угодно, даже внутри слова. Подчёркивания работают только на границах слов, поэтому snake_case остаётся как есть.
| Элемент | Markdown | Результат |
|---|---|---|
| Жирный | **bold text** | Жирный, <strong>bold text</strong> |
| Жирный, подчёркивания | __bold text__ | Жирный, как выше |
| Курсив | *italic text* | Курсив, <em>italic text</em> |
| Курсив, подчёркивания | _italic text_ | Курсив, как выше |
| Жирный курсив | ***bold and italic*** | <em><strong>bold and italic</strong></em> |
| Жирный внутри слова | un**believ**able | Жирная только середина слова |
| Подчёркивания в слове | snake_case_name | Обычный текст, без курсива |
| Зачёркивание (GFM) | ~~no longer true~~ | Зачёркнуто, <del>no longer true</del> |
| Подчёркнутый текст | <ins>underlined</ins> | Подчёркнутый текст. В Markdown нет синтаксиса подчёркивания, поэтому это HTML |
| Выделение цветом | <mark>highlighted</mark> | Выделенный текст там, где сайт разрешает тег <mark>. В Markdown нет синтаксиса выделения цветом |
Переносы строк и абзацы
Одно нажатие Enter внутри абзаца не начинает новую строку в результате. Используйте один из этих способов.
| Элемент | Markdown | Результат |
|---|---|---|
| Новый абзац | First paragraph.
Second paragraph. | Два абзаца. Их разделяет пустая строка |
| Перенос: два пробела | Roses are red,
Violets are blue. | Один абзац с <br> после red,. Первая строка заканчивается двумя пробелами, которых не видно |
| Перенос: обратный слеш | Roses are red,\
Violets are blue. | Тот же <br>, но с видимым маркером. Работает в CommonMark и на GitHub |
| Перенос: HTML | Roses are red,<br>Violets are blue. | Тот же <br>. Работает и внутри ячейки таблицы |
| Одиночный перевод строки | Roses are red,
Violets are blue. | Одна строка: Roses are red, Violets are blue. В issues и комментариях GitHub перенос сохраняется, в файлах .md нет |
| Лишние пустые строки | One.
Two. | То же, что одна пустая строка. Для большего отступа поставьте <br> на отдельной строке |
Списки
Вложенный пункт выравнивайте по тексту пункта над ним: 2 пробела под - , 3 пробела под 1. .
| Элемент | Markdown | Результат |
|---|---|---|
| Маркированный список | - Apples
- Pears
- Plums | Маркированный список, <ul> с тремя <li> |
| Другие маркеры | * Apples
+ Pears | * и + тоже создают маркеры. Смена символа начинает новый список |
| Нумерованный список | 1. Install
2. Configure
3. Run | Нумерованный список, <ol> |
| Ленивая нумерация | 1. Install
1. Configure
1. Run | Всё равно нумеруется 1, 2, 3. Значение имеет только первое число |
| Начать с числа | 7. Seventh
8. Eighth | <ol start="7">, нумерация с 7 |
| Вложенный список | - Fruit
- Apple
- Pear
- Vegetables | Список внутри первого пункта |
| Вложенный, нумерованный | 1. Download
- Windows
- macOS
2. Install | Маркеры внутри шага 1 с отступом в 3 пробела |
| Абзац в пункте | - First item
More about the first item.
- Second item | Два абзаца внутри первого пункта |
| Код в пункте | 1. Run this:
```bash
npm install
```
2. Start the app | Блок кода внутри шага 1 с отступом до текста пункта |
Списки задач (чекбоксы)
Расширение GitHub Flavored Markdown: пункт списка, который начинается с [ ] или [x], становится чекбоксом.
| Элемент | Markdown | Результат |
|---|---|---|
| Пустой чекбокс | - [ ] Write tests | Неотмеченный чекбокс |
| Отмеченный чекбокс | - [x] Write tests | Отмеченный чекбокс. [X] тоже работает |
| Чек-лист | - [x] Draft
- [ ] Review
- [ ] Publish | Один отмеченный и два пустых. В issues и pull requests на GitHub их можно отмечать щелчком |
| Вложенные задачи | - [ ] Release
- [x] Tag the commit
- [ ] Write the notes | Две подзадачи под первым чекбоксом |
| Нет пробела | - [] Write tests | Обычный маркер с текстом [] Write tests. В скобках нужен пробел или x |
Ссылки
Текст ссылки пишется в квадратных скобках, а адрес в круглых сразу после них, без пробела между ними.
| Элемент | Markdown | Результат |
|---|---|---|
| Встроенная ссылка | [Coddy](https://coddy.tech) | <a href="https://coddy.tech">Coddy</a> |
| Ссылка с заголовком | [Coddy](https://coddy.tech "Learn to code") | Та же ссылка. Заголовок показывается как подсказка при наведении |
| URL в угловых скобках | <https://coddy.tech> | Сам URL в виде ссылки |
| Голый URL (GFM) | https://coddy.tech | Ссылка на GitHub и других сайтах с GFM, которые также превращают в ссылки адреса с www.. В строгом CommonMark это обычный текст |
| Ссылка на email | <hello@example.com> | Ссылка mailto: |
| Ссылка-сноска | Read the [docs][1].
[1]: https://example.com/docs | docs ведёт на URL. Строка [1]: не показывается |
| Сокращённая ссылка-сноска | See [GitHub].
[GitHub]: https://github.com | GitHub ведёт на URL |
| Относительная ссылка | [Install guide](docs/install.md) | Ссылка на файл относительно текущего. На GitHub открывает файл в репозитории |
| Ссылка на заголовок | [Jump to setup](#getting-started) | Прокручивает к ## Getting Started на той же странице |
| ID заголовков | ## Getting Started! | На GitHub получает ID getting-started: нижний регистр, пробелы становятся дефисами, пунктуация кроме - и _ удаляется |
| Заголовок в другом файле | [Requirements](docs/install.md#requirements) | Открывает файл на этом заголовке |
| Пробелы в URL | [Report](my%20report.pdf) | Записывайте каждый пробел как %20 или заключите URL в угловые скобки: [Report](<my report.pdf>) |
| Открыть в новой вкладке | <a href="https://coddy.tech" target="_blank">Coddy</a> | В Markdown для этого нет синтаксиса. HTML работает там, где сайт сохраняет атрибут target |
Изображения
Изображение это ссылка с ! впереди. Текст в квадратных скобках становится альтернативным текстом, который зачитывают экранные дикторы.
| Элемент | Markdown | Результат |
|---|---|---|
| Изображение |  | <img src="cat.png" alt="A cat asleep on a sofa"> |
| Изображение с заголовком |  | То же изображение с подсказкой при наведении |
| Изображение по URL |  | Загружает изображение из интернета |
| Изображение-ссылка | [](https://coddy.tech) | Изображение, которое открывает ссылку по щелчку |
| Изображение-сноска | ![Logo][logo]
[logo]: images/logo.png | То же, что встроенное изображение, но URL задан один раз ниже |
| Размер изображения | <img src="logo.png" alt="Logo" width="200"> | Изображение шириной 200 пикселей. В чистом Markdown нет синтаксиса для размера, поэтому это HTML-тег <img> |
| Изображение по центру | <p align="center">
<img src="logo.png" alt="Logo" width="200">
</p> | Изображение по центру, как во многих README на GitHub |
Код и блоки кода
Обратные кавычки отмечают код внутри строки, а ограждение из трёх обратных кавычек отмечает блок. Внутри кода ничего не форматируется.
| Элемент | Markdown | Результат |
|---|---|---|
| Код в строке | Run `npm install` first. | npm install моноширинным шрифтом, как <code> |
| Обратная кавычка внутри кода | ``Use `git` here`` | Код Use `git` here. Оберните его в большее число обратных кавычек, чем в нём есть |
| Блок кода | ```
npm install
npm run dev
``` | Блок <pre><code> с сохранёнными переносами строк |
| Подсветка синтаксиса | ```python
def greet(name):
return f"Hello, {name}"
``` | Блок Python с цветной подсветкой. Частые названия: js, ts, python, bash, json, html, css, sql |
| Ограждение тильдами | ~~~js
console.log("hi");
~~~ | То же, что ограждение обратными кавычками |
| Код с отступом | const total = 42; | Блок кода из отступа в 4 пробела после пустой строки |
| Блок diff | ```diff
- const x = 1;
+ const x = 2;
``` | Удалённые строки красным и добавленные зелёным на GitHub |
| Ограждение внутри блока | ````markdown
```js
let a = 1;
```
```` | Блок, который показывает внутреннее ограждение как текст. Внешнему ограждению нужно больше обратных кавычек, чем внутреннему |
Таблицы
Расширение GitHub Flavored Markdown. Вторая строка, строка-разделитель, превращает первую строку в заголовок. В ней должно быть столько же ячеек, сколько в заголовке, иначе таблица не получится.
| Элемент | Markdown | Результат |
|---|---|---|
| Таблица | | Name | Role |
| ----- | ------ |
| Ada | Admin |
| Linus | Editor | | Таблица со строкой заголовка и двумя строками |
| Выравнивание столбцов | | Left | Center | Right |
| :--- | :----: | ----: |
| a | b | c | | Двоеточия задают выравнивание: по левому краю, по центру, по правому краю |
| Без внешних вертикальных черт | Name | Role
--- | ---
Ada | Admin | Та же таблица. Вертикальные черты в начале и конце строки необязательны |
| Ширина столбцов | | a | b |
|---|---|
| 1 | 2 | | Ширина зависит от содержимого. Количество дефисов не важно, и вертикальные черты не обязаны стоять ровно |
| Форматирование в ячейках | | Command | Does |
| --- | --- |
| `git status` | Shows **changed** files | | Код, жирный текст, ссылки и изображения работают внутри ячеек |
| Вертикальная черта в ячейке | | Operator | Meaning |
| --- | --- |
| `a \| b` | a or b | | Ячейка показывает a | b. Экранируйте черту как \|, даже внутри кода |
| Перенос строки в ячейке | | Step | Notes |
| --- | --- |
| 1 | First line<br>Second line | | Две строки в одной ячейке. Настоящий перевод строки завершил бы строку таблицы |
| Объединённые ячейки | <td colspan="2">Both columns</td> | Таблицы Markdown не умеют объединять ячейки. Напишите таблицу на HTML с colspan или rowspan |
Цитаты
Начинайте каждую строку с >. Цитата может содержать любой другой Markdown.
| Элемент | Markdown | Результат |
|---|---|---|
| Цитата | > Simple is better than complex. | Цитата с отступом, <blockquote> |
| Несколько абзацев | > First paragraph.
>
> Second paragraph. | Одна цитата с двумя абзацами. Строка с одним > удерживает их вместе |
| Вложенная цитата | > The reply
>> The original message | Цитата внутри цитаты |
| Другие элементы внутри | > #### Note
> - Back up first
> - Then upgrade | Заголовок и список внутри цитаты |
| Уведомление (GitHub) | > [!NOTE]
> Requires Node 20 or later. | Цветной блок Note на GitHub. Другие типы: [!TIP], [!IMPORTANT], [!WARNING] и [!CAUTION] |
Горизонтальные линии
Три и более дефиса, звёздочки или подчёркивания в отдельной строке рисуют линию поперёк страницы.
| Элемент | Markdown | Результат |
|---|---|---|
| Линия | --- | Горизонтальная линия, <hr> |
| Другие формы | ***
___ | Ещё две линии |
| Линия после текста | Some text
--- | Абзац, затем линия. Сохраняйте пустую строку |
| Нет пустой строки | Some text
--- | Заголовок уровня 2, а не линия: --- под строкой текста подчёркивает её |
Сноски
Поддерживаются на GitHub, GitLab и во многих генераторах статических сайтов. В строгом CommonMark сносок нет.
| Элемент | Markdown | Результат |
|---|---|---|
| Сноска | Markdown dates from 2004.[^1]
[^1]: John Gruber created it, with Aaron Swartz. | Надстрочная 1 со ссылкой на примечание, которое выводится внизу страницы |
| Именованная сноска | See the spec.[^spec]
[^spec]: https://spec.commonmark.org | Метки могут быть словами, но примечания всё равно нумеруются 1, 2, 3 в порядке использования |
| Где её определить | [^1]: The text of the note. | Определение может стоять в любом месте файла. Выводится оно всегда в конце |
Экранирование символов
Обратный слеш перед знаком пунктуации выводит сам знак вместо форматирования.
| Элемент | Markdown | Результат |
|---|---|---|
| Звёздочки как текст | \*not italic\* | Обычный текст со звёздочками: *not italic* |
| Решётка как текст | \# Not a heading | Абзац, который начинается с # |
| Число и точка | 2024\. A good year. | Абзац, а не список, начинающийся с 2024 |
| Скобки как текст | \[not a link\](page.md) | Квадратные и круглые скобки как набраны |
| Обратная кавычка как текст | \` | Одна обратная кавычка |
| Обратный слеш как текст | \\ | Один обратный слеш |
| Что можно экранировать | \ ` * _ {} [] () <> # + - . ! | | Любую пунктуацию ASCII. Обратный слеш перед буквой или цифрой остаётся обратным слешем |
| HTML-сущности | © 2026 & <div> | © 2026 & <div> как текст |
| Внутри кода экранирования нет | `*stars*` | Код *stars* как набран. Внутри кода обратный слеш это обычный символ |
HTML внутри Markdown
Большинство рендереров пропускают HTML, поэтому тег покрывает то, для чего в Markdown нет синтаксиса. GitHub удаляет небезопасный HTML, например <script>, <style>, <iframe> и атрибуты style.
| Элемент | Markdown | Результат |
|---|---|---|
| Клавиши клавиатуры | Press <kbd>Ctrl</kbd> + <kbd>C</kbd> | Ctrl и C в виде клавиш |
| Нижний и верхний индекс | H<sub>2</sub>O and x<sup>2</sup> | H₂O и x² |
| Сворачиваемый раздел | <details>
<summary>Show the answer</summary>
The answer is **42**.
</details> | Раздел, который раскрывается по щелчку. Пустые строки позволяют отобразиться Markdown внутри него |
| Markdown в блоке HTML | <div>
**not bold**
</div> | **not bold** как набрано. Markdown внутри блока HTML не читается, пока пустая строка не завершит блок |
| Цветной текст | <span style="color: red">red</span> | Красный текст на сайтах, которые разрешают встроенные стили. GitHub удаляет атрибут style |
Комментарии
В Markdown нет синтаксиса комментариев. Два приёма убирают текст со страницы.
| Элемент | Markdown | Результат |
|---|---|---|
| Скрытый комментарий | [//]: # (This line is never shown) | Ничего. Строка это определение ссылки, которое никакая ссылка не использует, поэтому оно не попадает в HTML |
| Другая форма | [comment]: <> (Also hidden) | Ничего, тот же приём |
| HTML-комментарий | <!-- TODO: add screenshots --> | На странице ничего, но комментарий остаётся в исходном коде HTML |
| Многострочный комментарий | <!--
This whole block
is hidden
--> | На странице ничего |
| Размещение | Some text.
[//]: # (comment)
More text. | Два абзаца. Перед строкой комментария нужна пустая строка, иначе она показывается как текст |
GitHub Flavored Markdown и дополнения GitHub
GitHub Flavored Markdown (GFM) это CommonMark плюс таблицы, списки задач, зачёркивание и автоссылки из URL. GitHub добавляет сверху ещё кое-что.
| Возможность | Markdown | Где работает |
|---|---|---|
| Таблицы | | a | b |
| --- | --- |
| 1 | 2 | | GFM: GitHub, GitLab и большинство инструментов документации |
| Списки задач | - [x] Done | GFM |
| Зачёркивание | ~~text~~ | GFM |
| Автоссылки из URL | www.coddy.tech | GFM |
| Код с указанием языка | ```js
let a = 1;
``` | CommonMark и GFM. Цвета задаёт сайт |
| Сноски | Text.[^1]
[^1]: Note. | GitHub и GitLab, хотя в спецификации GFM их нет |
| Эмодзи | :rocket: :tada: | GitHub и GitLab превращают шорткоды в эмодзи |
| Упоминания | @octocat | GitHub: ссылка на пользователя и уведомление ему |
| Ссылки на issues | #123 | GitHub: ссылка на issue или pull request 123 в том же репозитории |
| Диаграммы | ```mermaid
graph LR
A --> B
``` | GitHub и GitLab рисуют диаграмму Mermaid |
| Формулы | $E = mc^2$
$$
\sum_{i=1}^{n} i
$$ | GitHub отображает формулы LaTeX: в строке между знаками $ и блоком между строками $$ |
Весь синтаксис Markdown на одной странице, рядом с тем, во что он превращается. Эта шпаргалка по Markdown охватывает основной синтаксис (заголовки, выделение, переносы строк, списки, ссылки, изображения, код, цитаты) и расширения GitHub Flavored Markdown: таблицы с выравниванием, списки задач, зачёркивание, автоссылки из URL и сноски, а также экранирование, HTML и комментарии.
Примеры следуют CommonMark и GitHub Flavored Markdown, правилам, на которых построены GitHub, GitLab и большинство инструментов документации. Там, где сайт ведёт себя иначе, об этом сказано в строке. Чтобы увидеть, как пример отображается прямо во время набора, вставьте его в редактор Markdown.
Вопросы о Markdown
Как сделать таблицу в Markdown?
| Name | Role |, | --- | --- |, | Ada | Admin |. Двоеточия в строке-разделителе выравнивают столбец: :--- по левому краю, :---: по центру, ---: по правому краю. Таблицы входят в GitHub Flavored Markdown, поэтому работают на GitHub, GitLab и в большинстве инструментов документации, но не в строгом CommonMark.Как сделать перенос строки в Markdown?
\) либо напишите <br>. Чтобы начать новый абзац, оставьте пустую строку. Исключение составляют issues и комментарии на GitHub: там одиночный перевод строки уже показывается как перенос.Как написать комментарий в Markdown?
[//]: # (your comment) на отдельной строке с пустой строкой перед ней это определение ссылки, которое ничто не использует, поэтому оно не попадает ни на страницу, ни в HTML. HTML-комментарий <!-- your comment --> тоже не виден на странице, но остаётся в исходном коде HTML, где его может прочитать любой, кто откроет исходный код.Как сделать блок кода в Markdown?
```python. Для кода внутри предложения оберните его в одиночные обратные кавычки: `npm install`.Как добавить чекбокс в Markdown?
[ ] для пустого чекбокса или с [x] для отмеченного: - [ ] Review или - [x] Draft. Сохраняйте пробел внутри пустых скобок. Чекбоксы входят в GitHub Flavored Markdown, и в issues и pull requests на GitHub их можно отмечать щелчком.Как изменить размер изображения в Markdown?
 всегда показывает изображение в его собственном размере. Вместо этого используйте HTML-тег, например <img src="image.png" alt="alt text" width="300">, который принимают GitHub и большинство рендереров. Задавайте только ширину или только высоту, чтобы сохранить пропорции.Как сделать ссылку на заголовок в Markdown?
#: [Setup](#getting-started) переходит к ## Getting Started. GitHub строит ID из текста заголовка в нижнем регистре, заменяя пробелы дефисами и удаляя пунктуацию, кроме дефисов и подчёркиваний. Для заголовка в другом файле поставьте ID после имени файла: [Setup](docs/install.md#getting-started).Что такое файл .md?
.md и .markdown, а README.md это файл, который GitHub показывает на главной странице репозитория. Его открывает любой текстовый редактор; GitHub, сайты документации и просмотрщики Markdown отображают его как форматированный текст. Чтобы видеть файл отформатированным во время редактирования, вставьте его в редактор Markdown.