Markdown
Весь синтаксис Markdown на одной странице: заголовки, списки, ссылки, таблицы, код, цитаты и расширения GFM — с примерами и пояснениями.
Markdown — это лёгкий язык разметки: пишешь обычный текст со спецсимволами, а на выходе получаешь HTML. Ниже весь основной синтаксис на одной странице — с примерами. Где есть варианты, показаны популярный CommonMark и расширения GitHub Flavored Markdown (GFM).
1. Заголовки
Уровень задаётся числом решёток от 1 до 6. Есть и альтернативный «подчёркнутый» синтаксис для h1 и h2.
# Заголовок 1 уровня
## Заголовок 2 уровня
### Заголовок 3 уровня
#### Заголовок 4
##### Заголовок 5
###### Заголовок 6
Альтернативный вариант (Setext):
Заголовок 1 уровня
==================
Заголовок 2 уровня
------------------
2. Выделение текста
Звёздочки и подчёркивания работают одинаково. Зачёркивание и инлайн-код — расширения, поддерживаемые почти везде.
**жирный текст** или __жирный текст__
*курсив* или _курсив_
***жирный курсив***
~~зачёркнутый~~
`инлайн-код`
**Жирный с _вложенным курсивом_ внутри**
3. Списки
Маркированные списки начинаются с -, * или + (любой на выбор). Нумерованные — с цифры и точки; реальные числа не важны, рендер пересчитает сам. Вложенность — через отступ (обычно 2–4 пробела).
- пункт через дефис
* пункт через звёздочку
+ пункт через плюс
1. первый
2. второй
3. третий
1. внешний пункт
1. вложенный пункт
2. ещё вложенный
- и глубже маркированный
Чек-боксы (GFM):
- [ ] невыполненная задача
- [x] выполненная задача
4. Ссылки и изображения
Изображение отличается от ссылки только восклицательным знаком впереди. Reference-style удобен, когда один URL используется несколько раз.
[текст ссылки](https://example.com)
[ссылка с подсказкой](https://example.com "всплывающий title")


Reference-style (ссылка-якорь определяется ниже):
[главная][home] и снова [главная][home]
![логотип][logo]
[home]: https://example.com
[logo]: https://example.com/logo.png
Автоссылка: <https://example.com>
5. Код
Инлайн-код оборачивается одинарными бэктиками. Блоки кода — тройными бэктиками (или ~~~), после открывающих можно указать язык для подсветки.
Инлайн: вызови `printf()` для вывода.
```python
def hello(name):
print(f"Привет, {name}!")
```
```js
const sum = (a, b) => a + b;
```
Блок без указания языка:
```
плоский текст без подсветки
```
Альтернатива — блок с отступом в 4 пробела:
это тоже код-блок
6. Цитаты
Цитата начинается со знака >. Цитаты можно вкладывать и наполнять любой разметкой.
> Это цитата.
> Вторая строка той же цитаты.
> Уровень 1
>> Вложенная цитата
>>> Ещё глубже
> Внутри цитаты работает **разметка**:
> - список
> - `код`
7. Таблицы
Таблицы (GFM) рисуются вертикальными чертами. Вторая строка-разделитель задаёт выравнивание двоеточиями: :--- влево, :---: по центру, ---: вправо. Внешние черты и идеальное выравнивание пробелами необязательны.
| Колонка A | Колонка B | Колонка C |
| --------- | :-------: | --------: |
| слева | по центру | справа |
| ячейка | ячейка | 42 |
Минимальный вариант без рамок:
Язык | Год
:--- | ---:
Python | 1991
Go | 2009
8. Горизонтальная линия и переносы
Три и более символа -, * или _ на отдельной строке дают разделитель. Перенос строки внутри абзаца — два пробела в конце строки или обратный слеш; пустая строка начинает новый абзац.
Текст до линии.
---
***
___
Текст после линии.
Первая строка с двумя пробелами в конце,
вторая строка того же абзаца.
Первая строка с обратным слешом,\
вторая строка.
9. Экранирование и HTML
Обратный слеш перед спецсимволом отключает его особое значение. А ещё в Markdown можно прямо вставлять HTML-теги.
Экранирование спецсимволов:
\*это не курсив\*
\# это не заголовок
1\. это не нумерованный список
\`без кода\`
Вставка HTML прямо в Markdown:
<div align="center">
<strong>HTML внутри Markdown</strong>
</div>
Текст с <br> принудительным переносом.
<sub>нижний</sub> и <sup>верхний</sup> индекс.
10. Расширения GFM
GitHub Flavored Markdown добавляет задачи, автоссылки, эмодзи-шорткоды и сноски.
Список задач:
- [x] спроектировать
- [ ] написать тесты
Автоссылки (URL превращается в ссылку сам):
Заходи на https://example.com
Эмодзи по шорткоду:
Готово :rocket: :tada: :+1:
Сноска в тексте[^1] и ещё одна[^note].
[^1]: Текст первой сноски.
[^note]: Текст именованной сноски.