← Назад к блогу
Markdown: полное руководство

Markdown: полное руководство

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

Пишете ли вы техническую документацию, создаёте личную базу знаний, документируете программный проект или публикуете материалы в интернете — Markdown предлагает простой и гибкий способ структурировать информацию.

В этом руководстве вы узнаете всё необходимое, чтобы начать работать с Markdown, изучите его самый полезный синтаксис, разберётесь в расширенных возможностях и найдёте практические советы для создания аккуратных и переносимых документов.

Из этого руководства вы узнаете, как:

  • Понять, что такое Markdown и как он работает.
  • Форматировать текст с помощью заголовков, списков, ссылок и изображений.
  • Писать примеры кода и создавать таблицы.
  • Использовать списки задач, сноски и другие расширенные возможности.
  • Понимать различия между реализациями Markdown.
  • Писать поддерживаемые документы Markdown.
  • Находить нужный синтаксис в краткой шпаргалке.

1. Что такое Markdown?

Markdown — это лёгкий язык разметки, созданный Джоном Грубером при участии Аарона Шварца и выпущенный в 2004 году.

Его главная цель — сделать форматированный текст удобным для написания и чтения в исходном виде, обычным текстом.

Документ Markdown использует обычные символы для обозначения форматирования. Например, заголовок начинается с символа решётки (#), жирный текст окружается двойными звёздочками (**), а маркированный список использует дефисы (-).

Рассмотрим пример:

# My First Document

This is a paragraph with **bold text** and *italic text*.

## My Tasks

- Learn Markdown
- Write documentation
- Build a knowledge base

[Visit Example](https://example.com)

Процессор Markdown может отобразить этот исходный текст как форматированный документ с заголовками, выделенным текстом, списком и кликабельной ссылкой.

Важно понимать разницу: сам Markdown — это синтаксис письма. Процессор Markdown интерпретирует этот синтаксис и преобразует его в отображаемое представление, чаще всего в HTML.

Файлы Markdown обычно имеют расширение .md, хотя используется и .markdown.

Почему Markdown так популярен?

Markdown сочетает простоту обычного текста с достаточной структурой для большинства повседневных задач письма.

Его главные преимущества:

  • Читаемость: исходный текст остаётся понятным даже без отображения.
  • Переносимость: текстовые файлы открываются во множестве редакторов и инструментов.
  • Простота: для большей части форматирования нужно всего несколько символов.
  • Контроль версий: изменения текста можно отслеживать с помощью Git и подобных систем.
  • Переиспользование: документы можно преобразовывать в разные выходные форматы.
  • Автоматизация: Markdown можно обрабатывать скриптами, генераторами документации и системами публикации.

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

2. Зачем использовать Markdown?

Markdown полезен везде, где нужен структурированный контент без накладных расходов на редактор форматированного текста.

Техническая документация

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

Например, файл README.md часто объясняет, что делает проект, как его установить и как запустить.

Управление личными знаниями

Markdown хорошо подходит для личных заметок, исследований, протоколов встреч, справочных материалов и связанных баз знаний.

Поскольку заметки хранятся как текстовые файлы, их можно искать, редактировать, резервировать и обрабатывать множеством разных инструментов.

Написание и публикация

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

Совместная работа и контроль версий

Так как Markdown — это обычный текст, изменения можно просматривать как построчные различия. Это особенно полезно для совместной документации и материалов, которые поддерживаются вместе с исходным кодом.

Долгосрочная переносимость

Файл Markdown не требует конкретного приложения, чтобы оставаться читаемым. Даже если ваш любимый редактор исчезнет, лежащий в основе текст всё ещё можно открыть простым текстовым редактором.

Однако у переносимости есть пределы: специфичные для приложения расширения, встроенные медиафайлы и внешние вложения могут потребовать дополнительных инструментов или файлов.

3. Как работает Markdown

Типичный процесс работы с Markdown состоит из трёх частей:

  1. Написание: создайте документ с помощью синтаксиса Markdown.
  2. Обработка: парсер Markdown интерпретирует синтаксис.
  3. Отображение: совместимое приложение показывает отформатированный результат.

Например:

# Getting Started

Markdown makes **structured writing** simple.

- Write in plain text.
- Add lightweight formatting.
- Preview the rendered document.

Совместимый отрисовщик интерпретирует символ решётки как заголовок, двойные звёздочки как выделение, а дефисы как маркеры списка.

Не каждое приложение отображает Markdown одинаково. Базовый синтаксис поддерживается широко, но расширенные возможности могут различаться между платформами.

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

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

Следующие разделы охватывают основной синтаксис, используемый в большинстве документов Markdown.

4.1. Заголовки

Заголовки организуют содержимое в понятную иерархию.

Используйте от одного до шести символов решётки (#) перед текстом заголовка:

# Heading 1

## Heading 2

### Heading 3

#### Heading 4

##### Heading 5

###### Heading 6

Количество символов решётки определяет уровень заголовка:

  • # — уровень 1
  • ## — уровень 2
  • ### — уровень 3
  • #### — уровень 4
  • ##### — уровень 5
  • ###### — уровень 6

Заголовок обычно начинается с новой строки. Пробел после символов решётки — надёжное соглашение.

Лучшие практики:

  • Используйте один понятный заголовок верхнего уровня для документа.
  • Организуйте основные разделы заголовками второго уровня.
  • Используйте заголовки более низких уровней для подразделов.
  • Избегайте пропуска уровней заголовков без веской причины.
  • Выбирайте заголовки по смыслу, а не только по внешнему виду.

Некоторые процессоры Markdown также поддерживают альтернативный синтаксис заголовков:

Main Heading
============

Subheading
----------

Этот альтернативный стиль поддерживает только первые два уровня заголовков и реже используется в современных документах Markdown.

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

Абзац — это блок текста, отделённый от других блоков пустой строкой.

This is the first paragraph.

This is the second paragraph.

Типичная ошибка новичка — считать, что каждый перенос строки создаёт новый абзац.

В стандартном Markdown одиночный перенос строки внутри абзаца обычно трактуется как пробел:

This is one paragraph
even though the source has two lines.

Чтобы создать новый абзац, вставьте пустую строку.

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

First line.  
Second line.

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

4.3. Жирный, курсив и зачёркивание

Markdown предлагает простые способы выделения текста.

Форматирование Синтаксис Результат
Жирный **bold text** жирный текст
Курсив *italic text* курсивный текст
Жирный и курсив ***important text*** важный текст
Зачёркивание ~~deleted text~~ удалённый текст

Примеры:

This is **bold text**.

This is *italic text*.

This is ***bold and italic text***.

This is ~~outdated information~~.

Для выделения можно использовать и подчёркивания:

__Bold text__

_Italic text_

Звёздочки часто легче читать в документах, где в технических идентификаторах встречаются подчёркивания.

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

4.4. Списки

Markdown поддерживает маркированные списки, нумерованные списки и вложенные списки.

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

Используйте дефис, звёздочку или знак плюс, за которым следует пробел:

- First item
- Second item
- Third item

Можно также написать:

* First item
* Second item
* Third item

Или:

+ First item
+ Second item
+ Third item

Выберите один стиль маркеров и последовательно используйте его в документе.

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

Используйте числа, за которыми следует точка:

1. Install the application.
2. Configure the settings.
3. Start the application.

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

Вложенные списки

Делайте отступы у элементов списка, чтобы создать иерархию:

- Frontend
  - Components
  - Pages
  - State management
- Backend
  - API
  - Database
  - Authentication

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

Списки с несколькими абзацами

Внутри элемента списка можно размещать дополнительные абзацы и другие блоки, делая для них соответствующие отступы.

1. Prepare the document.

   Check the title, headings, and links.

2. Review the content.

   Confirm that all examples work.

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

4.5. Ссылки

Ссылки связывают ваш документ с сайтами, другими документами и ресурсами.

Стандартный синтаксис встроенной ссылки:

[Link text](https://example.com)

Пример:

Read the [Markdown documentation](https://example.com/docs).

Текст ссылки отображается как кликабельный текст.

Ссылки с заголовками

Можно добавить необязательный заголовок:

[Documentation](https://example.com/docs "Read the documentation")

Некоторые отрисовщики показывают заголовок как подсказку при наведении курсора на ссылку.

Ссылки по ссылочному стилю

Ссылки по ссылочному стилю отделяют текст ссылки от адреса назначения:

Read the [official documentation][docs].

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

Это особенно полезно, когда один и тот же адрес встречается в длинном документе несколько раз.

Относительные ссылки

Относительные ссылки удобны при работе с набором файлов Markdown:

[Installation Guide](./installation.md)

[Architecture](../reference/architecture.md)

Их адреса зависят от расположения текущего документа и среды, которая разрешает ссылку.

Лучшие практики для ссылок:

  • Используйте описательный текст ссылки.
  • Избегайте расплывчатых подписей вроде «нажмите здесь».
  • Проверяйте, что адреса остаются действительными.
  • Предпочитайте относительные ссылки для документов внутри одного переносимого набора.
  • Учитывайте, требует ли адрес аутентификации или определённого приложения.

4.6. Изображения

Изображения используют синтаксис, похожий на ссылки, но с восклицательным знаком в начале:

![Alternative text](image.png)

Пример:

![Application dashboard](./images/dashboard.png)

Альтернативный текст описывает изображение для пользователей, которые его не видят, и для вспомогательных технологий.

Изображения с заголовками

![A product dashboard](dashboard.png "Product dashboard")

Изображения по URL

![Example illustration](https://example.com/images/illustration.png)

Удалённое изображение должно оставаться доступным, а отрисовщик — разрешать его загрузку.

Управление размерами изображения

Стандартный Markdown не определяет универсального синтаксиса для задания ширины и высоты изображения. Некоторые отрисовщики поддерживают HTML:

<img src="dashboard.png" alt="Product dashboard" width="600">

Поддержка HTML и правила очистки различаются между приложениями.

Важно: файл Markdown с изображениями не обязательно самодостаточен. Если изображения хранятся отдельно, сохраняйте относительные пути и включайте соответствующие файлы при перемещении или экспорте документа.

4.7. Цитаты

Используйте символ «больше» (>), чтобы создать цитату:

> This is a blockquote.

Для нескольких абзацев:

> This is the first paragraph.
>
> This is the second paragraph.

Цитаты могут также содержать другие элементы Markdown:

> ## Important Information
>
> Read the instructions carefully.
>
> - Check the requirements.
> - Verify the configuration.

Цитаты полезны для выдержек, контекстных заметок и выделения фрагментов из других источников.

Однако цитата не является автоматически семантическим предупреждением или оповещением. Специальные стили оповещений требуют дополнительных соглашений, поддерживаемых конкретными отрисовщиками.

4.8. Встроенный код и блоки кода

Markdown упрощает отображение кода, команд, значений конфигурации и технических идентификаторов.

Встроенный код

Заключайте короткий фрагмент кода в одинарные обратные кавычки:

Run `npm install` to install the dependencies.

Это полезно для команд, имён переменных, путей к файлам и коротких фрагментов.

Блоки кода в ограждении

Используйте три обратные кавычки до и после блока кода:

```javascript
const greeting = "Hello, world!";
console.log(greeting);
```

Идентификатор языка после открывающих обратных кавычек помогает совместимым отрисовщикам применить подсветку синтаксиса.

Примеры:

JavaScript

```javascript
const sum = (a, b) => a + b;
console.log(sum(2, 3));
```

Python

```python
def greet(name):
    return f"Hello, {name}!"

print(greet("Alex"))
```

JSON

```json
{
  "name": "Markdown Guide",
  "version": "1.0"
}
```

Bash

```bash
npm install
npm run dev
```

Блоки кода без подсветки синтаксиса

Идентификатор языка можно опустить:

```
Plain code block
No language specified
```

Блоки кода, содержащие обратные кавычки

Если ваш пример содержит три подряд идущие обратные кавычки, используйте более длинное ограждение вокруг него:

````markdown
```javascript
console.log("Hello");
```
````

Этот приём особенно полезен при документировании самого синтаксиса Markdown.

Лучшие практики:

  • Указывайте язык, когда это уместно.
  • Держите примеры кода сфокусированными.
  • Убедитесь, что примеры корректны и воспроизводимы.
  • Избегайте длинных примеров кода внутри встроенного кода.
  • Объясняйте, что делает фрагмент, если его назначение не очевидно.

4.9. Горизонтальные линии

Горизонтальная линия создаёт визуальный разделитель между разделами.

Используйте три или более дефиса, звёздочки или подчёркивания на отдельной строке:

---

Другие допустимые примеры:

***
___

Горизонтальная линия может разделять крупные части документа, но не должна заменять осмысленную иерархию заголовков.

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

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

Помните, что часть расширенного синтаксиса определяется расширениями, а не исходной спецификацией Markdown.

5.1. Таблицы

Таблицы организуют структурированную информацию в строки и столбцы.

Распространённый синтаксис таблицы использует вертикальные черты (|) для разделения столбцов и дефисы (-) для отделения заголовка от тела:

| Feature | Markdown | HTML |
|---|---|---|
| Readability | High | Lower |
| Formatting | Simple syntax | Explicit tags |
| Common use | Notes and documentation | Web documents |

В результате получается таблица с тремя столбцами.

Выравнивание столбцов таблицы

В реализациях Markdown, поддерживающих выравнивание таблиц, двоеточия управляют горизонтальным выравниванием:

| Left | Center | Right |
|:---|:---:|---:|
| Text | Text | Text |
| More | More | More |
  • :--- выравнивает текст по левому краю.
  • :---: центрирует текст.
  • ---: выравнивает текст по правому краю.

Таблицы полезны для сравнения возможностей, справочников по конфигурации и кратких сводок данных.

Ограничения: таблицы не входят в исходный базовый синтаксис Markdown. Их поддержка зависит от варианта Markdown. Сложные макеты, объединённые ячейки и богатые интерактивные элементы обычно требуют других приёмов.

5.2. Списки задач и чек-листы

Списки задач полезны для отслеживания проектов, проверки документации и личной продуктивности.

В GitHub Flavored Markdown невыполненная задача использует [ ], а выполненная — [x]:

- [x] Define the article structure
- [x] Write the first draft
- [ ] Review the examples
- [ ] Publish the article

Совместимые отрисовщики показывают эти элементы как флажки.

Списки задач особенно полезны в файлах README, задачах, планах проектов и заметках.

Однако не каждый просмотрщик Markdown поддерживает интерактивные флажки. В некоторых средах синтаксис может отображаться как обычный текст.

5.3. Экранирование специальных символов

Иногда нужно показать символ, не вызывая его поведение как форматирования Markdown.

Используйте обратную косую черту (\) перед поддерживаемыми специальными символами:

\*This is not italic text\*

\# This is not a heading

\[This is not a link\]

Этот приём называется экранированием.

Обычные символы, которые могут требовать экранирования:

\ ` * _ { } [ ] < > ( ) # + - . ! |

Точные правила разбора зависят от контекста и реализации Markdown.

Например, экранирование решётки в начале строки не даёт ей быть истолкованной как маркер заголовка в стандартном Markdown.

5.4. HTML в Markdown

Многие процессоры Markdown позволяют включать некоторые HTML-элементы прямо в документ.

Пример:

<details>
  <summary>Show additional information</summary>

  This content can be expanded in compatible environments.

</details>

Это может быть полезно, когда Markdown не даёт нужного форматирования или взаимодействия.

Другие распространённые HTML-элементы:

  • <br> для переноса строки.
  • <sub> для нижнего индекса.
  • <sup> для верхнего индекса.
  • <kbd> для ввода с клавиатуры.
  • <details> и <summary> для раскрывающихся разделов, где это поддерживается.

Например:

Water is H<sub>2</sub>O.

The result is 10<sup>2</sup> = 100.

Хотя HTML может расширять Markdown, использовать его следует осторожно.

Некоторые отрисовщики ограничивают или очищают HTML по соображениям безопасности. Отдельные элементы могут вообще не отображаться, а поведение в конкретном приложении может различаться.

Предпочитайте стандартный Markdown везде, где он отвечает вашим задачам.

5.5. Сноски

Сноски дают дополнительные пояснения или ссылки, не прерывая основной текст.

В реализациях Markdown, поддерживающих сноски, синтаксис выглядит так:

Markdown is widely used for technical documentation.[^1]

[^1]: Markdown was introduced in 2004 by John Gruber, with contributions from Aaron Swartz.

Ссылка на сноску связывает предложение с определением в другом месте документа.

Сноски полезны для:

  • Дополнительного контекста.
  • Ссылок на источники.
  • Технических пояснений.
  • Определений, которые прервали бы основное повествование.

Сноски — это расширение, поэтому проверьте, поддерживает ли их ваша целевая платформа, прежде чем полагаться на этот синтаксис.

5.6. Автоссылки

Некоторые реализации Markdown автоматически распознают URL и адреса электронной почты.

Например, GitHub Flavored Markdown поддерживает автоссылки из «голых» URL в подходящих контекстах.

URL можно написать напрямую:

https://example.com

Явные ссылки обычно предпочтительнее, когда нужен описательный текст привязки:

[Visit Example](https://example.com)

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

5.7. Списки определений, математика и диаграммы

Дополнительные расширения Markdown могут поддерживать более специализированный контент.

Списки определений связывают термины с описаниями.

Математическая нотация может использовать выражения в стиле LaTeX в приложениях, которые поддерживают расширение для математики:

Inline formula: $E = mc^2$

Display formula:

$$
a^2 + b^2 = c^2
$$

Диаграммы можно генерировать из текста с помощью инструментов вроде Mermaid, если они поддерживаются:

```mermaid
flowchart TD
    A[Write Markdown] --> B[Parse Document]
    B --> C[Render Output]
```

Эти возможности могут быть ценны для научных заметок, технической документации и баз знаний.

Они поддерживаются не всеми процессорами Markdown. Всегда проверяйте поведение вашего целевого приложения.

6. Варианты Markdown: CommonMark, GFM и другие

Одна из самых важных вещей, которые нужно понимать про Markdown, — что не существует единственной реализации, поддерживающей все расширения повсюду.

Исходный синтаксис Markdown был намеренно лёгким. Со временем разные инструменты добавили дополнительные возможности.

Особенно полезны три понятия.

Исходный Markdown

Исходный синтаксис Markdown появился в 2004 году. Он охватывает распространённые структуры письма: заголовки, абзацы, списки, ссылки, изображения, цитаты и код.

Исторически разные реализации по-разному трактовали некоторые пограничные случаи.

CommonMark

CommonMark — это стандартизированная спецификация, уточняющая многие правила разбора Markdown.

Её цель — обеспечить согласованное поведение в разных реализациях; она включает подробный набор примеров для проверки совместимости парсеров.

CommonMark — полезная отправная точка, когда важна совместимость.

GitHub Flavored Markdown (GFM)

GitHub Flavored Markdown строится на CommonMark и добавляет возможности, используемые во всём GitHub.

К ним относятся:

  • Таблицы.
  • Списки задач.
  • Зачёркивание.
  • Автоссылки.
  • Дополнительное поведение, специфичное для платформы.

GitHub также поддерживает некоторые расширения и соглашения отображения сверх базового синтаксиса Markdown.

Другие реализации

Другие приложения могут предлагать собственные расширения Markdown для сносок, математических выражений, выносок, диаграмм, внутренних ссылок, метаданных или интерактивного контента.

Например, приложение для заметок может поддерживать специальные ссылки между заметками или дополнительные типы блоков.

Такие возможности могут быть полезны внутри этого приложения, но могут не работать в других редакторах Markdown.

Какой вариант Markdown выбрать?

Выбирайте исходя из того, где будет использоваться документ.

Сценарий использования Рекомендуемый подход
Переносимые заметки и простые документы Базовый синтаксис Markdown
Файлы README и задачи на GitHub GitHub Flavored Markdown
Техническая документация Синтаксис, поддерживаемый вашим генератором документации
Личная база знаний Синтаксис, поддерживаемый вашим приложением для заметок
Математические документы Markdown с поддерживаемым расширением для математики
Текстовые диаграммы Markdown с поддерживаемым расширением для диаграмм

Практическое правило: используйте базовый Markdown для контента, который должен оставаться переносимым. Вводите расширения только тогда, когда они дают явную выгоду и ваша целевая среда их поддерживает.

7. Лучшие практики Markdown

Писать на Markdown легко. Поддержание большого набора документов Markdown требует чуть больше дисциплины.

Следующие практики помогают делать документы читаемыми, согласованными и переносимыми.

7.1. Держите исходный текст читаемым

Markdown должен оставаться понятным до отображения.

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

Избегайте лишнего форматирования и глубоко вложенных структур, когда есть более простые альтернативы.

7.2. Используйте согласованную иерархию заголовков

Документ должен иметь понятную структуру.

Например:

# Project Documentation

## Getting Started

### Installation

### Configuration

## Development

### Testing

### Deployment

Такая иерархия упрощает просмотр и навигацию по документу.

7.3. Предпочитайте описательные ссылки

Избегайте ссылок, которые зависят от окружающего контекста.

Вместо:

[Click here](https://example.com/docs)

Предпочтите:

[Read the installation documentation](https://example.com/docs)

Описательные ссылки улучшают читаемость и доступность.

7.4. Используйте относительные пути для связанных файлов

Когда документы хранятся вместе, относительные ссылки упрощают перемещение набора.

Пример структуры каталогов:

knowledge-base/
├── README.md
├── guides/
│   ├── markdown.md
│   └── installation.md
└── images/
    └── dashboard.png

Из guides/markdown.md относительная ссылка на изображение может выглядеть так:

![Dashboard](../images/dashboard.png)

Всегда проверяйте относительные пути после перемещения или переименования файлов.

7.5. Держите документы сфокусированными

Документ должен иметь понятное назначение.

Если файл становится слишком длинным, подумайте о том, чтобы разделить его на более мелкие документы и связать их между собой.

Например, программный проект может разделять инструкции по установке, документацию по архитектуре, справочники API и руководства по устранению неполадок.

7.6. Проверяйте совместимость перед использованием расширений

Прежде чем добавлять таблицы, сноски, диаграммы, выноски или встроенный HTML, убедитесь, что ваш целевой отрисовщик их поддерживает.

Если документы будут просматриваться в нескольких приложениях, проверьте самые важные примеры в каждой среде.

7.7. Сохраняйте вспомогательные файлы

Markdown может ссылаться на изображения и другие внешние ресурсы.

Если документ зависит от дополнительных файлов, храните их организованно и сохраняйте относительные пути.

Папка, содержащая файл Markdown и связанные с ним ресурсы, часто более переносима, чем документ, содержимое которого зависит от недоступных внешних URL.

7.8. Используйте метаданные, когда они нужны вашему процессу

Некоторые инструменты поддерживают YAML front matter в начале файла Markdown.

Например:

---
title: Markdown Guide
description: A practical introduction to Markdown.
tags:
  - markdown
  - documentation
---

Front matter не входит в базовый синтаксис Markdown. Совместимое приложение или генератор статических сайтов интерпретирует его как метаданные документа.

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

8. Распространённые ошибки в Markdown

Большинство проблем с Markdown возникает из-за мелких синтаксических ошибок или различий между движками отображения.

Вот некоторые распространённые проблемы и способы их избежать.

Отсутствующие пустые строки

Неправильно:

# Introduction
This is a paragraph.
- First item
- Second item

В зависимости от контекста и парсера блоки могут разделяться не так, как задумано.

Более безопасный вариант:

# Introduction

This is a paragraph.

- First item
- Second item

Неправильный синтаксис заголовка

Неправильно:

##Heading

Рекомендуется:

## Heading

Пробел после символов решётки — самое ясное и переносимое соглашение.

Сломанные ссылки

Неправильно:

[Documentation](https://example.com/docs

Правильно:

[Documentation](https://example.com/docs)

Проверяйте, что круглые и квадратные скобки сбалансированы.

Неправильные ограждения кода

Неправильно:

```javascript
console.log("Hello");
```

The closing fence is missing.

Правильно:

```javascript
console.log("Hello");
```

Незакрытые ограждения могут привести к тому, что последующий контент будет воспринят как код.

Неожиданные переносы строк

Одиночный перенос строки не всегда создаёт видимый разрыв строки.

Если две строки должны оставаться в одном абзаце, но отображаться отдельно, используйте поддерживаемое соглашение жёсткого переноса. Иначе вставьте пустую строку, чтобы создать новый абзац.

Неподдерживаемые расширения

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

Используйте синтаксис, поддерживаемый вашей целевой средой, или предложите более простую альтернативу.

Сломанные относительные пути

Ссылка, которая работает в одной папке, может перестать работать после перемещения файла.

Пересматривайте относительные ссылки и пути к изображениям всякий раз, когда реорганизуете набор документов.

9. Шпаргалка по Markdown

Используйте эту краткую справку, когда нужно вспомнить конкретный синтаксис.

Базовое форматирование

Элемент Синтаксис Markdown
Заголовок 1 # Heading
Заголовок 2 ## Heading
Заголовок 3 ### Heading
Жирный **text**
Курсив *text*
Жирный и курсив ***text***
Зачёркивание ~~text~~
Цитата > Quote
Горизонтальная линия ---

Списки

Элемент Синтаксис Markdown
Маркированный список - Item
Нумерованный список 1. Item
Вложенный список - Nested item
Выполненная задача - [x] Done
Невыполненная задача - [ ] To do

Списки задач требуют совместимой реализации Markdown.

Ссылки и изображения

Элемент Синтаксис Markdown
Ссылка [Text](https://example.com)
Ссылка по ссылочному стилю [Text][ref]
Определение ссылки [ref]: https://example.com
Изображение ![Alt text](image.png)
Изображение с заголовком ![Alt](image.png "Title")

Код

Элемент Синтаксис Markdown
Встроенный код `code`
Блок кода Три обратные кавычки вокруг кода
Блок JavaScript Три обратные кавычки, затем javascript
Блок Python Три обратные кавычки, затем python
Экранированная звёздочка \*

Расширенные возможности

Элемент Синтаксис Markdown
Таблица Вертикальные черты и строка-разделитель
Ссылка на сноску [^1]
Определение сноски [^1]: Footnote text
Сырой HTML <details>...</details>
Математическое выражение $E = mc^2$
Диаграмма Mermaid Блок в ограждении с меткой mermaid

Расширенные возможности требуют совместимого отрисовщика. Если поведение различается, обратитесь к документации соответствующего приложения.

10. Часто задаваемые вопросы

Для чего используется Markdown?

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

Он особенно полезен, когда нужны читаемые исходные файлы, которые можно редактировать, искать, версионировать и преобразовывать в другие форматы.

Markdown — это язык программирования?

Нет. Markdown — это лёгкий язык разметки, а не язык программирования.

Он описывает структуру и форматирование текста, а не определяет исполняемую логику программы.

Как создать файл Markdown?

Создайте обычный текстовый файл в текстовом редакторе и сохраните его с расширением .md.

Например, notes.md — это файл Markdown. Затем можно писать заголовки, списки, ссылки и другой поддерживаемый синтаксис Markdown.

В чём разница между Markdown и HTML?

Markdown предлагает компактный и читаемый синтаксис для распространённых структур документа.

HTML использует явные теги для описания элементов документа и даёт более детальный контроль над веб-содержимым.

Markdown часто преобразуется в HTML для отображения. Его также можно преобразовывать в другие форматы с помощью подходящих инструментов.

Сложно ли выучить Markdown?

Markdown относительно легко выучить, потому что его базовый синтаксис использует обычные символы.

Большинство пользователей могут начать создавать полезные документы, выучив заголовки, абзацы, списки, ссылки, выделение и блоки кода.

Расширенные возможности можно изучать по мере необходимости.

Может ли Markdown содержать изображения?

Да. Markdown поддерживает синтаксис изображений, который ссылается на файл изображения или URL.

Например:

![Example image](./images/example.png)

Изображение должно быть доступно приложению, которое отображает документ.

Может ли Markdown создавать таблицы?

Да, в реализациях Markdown, поддерживающих расширения таблиц, например в GitHub Flavored Markdown.

Таблицы не входят в исходный базовый синтаксис Markdown, поэтому поддержка зависит от отрисовщика.

Может ли Markdown создавать чек-листы?

Да. Синтаксис списков задач поддерживается несколькими реализациями Markdown.

Например:

- [x] First task
- [ ] Second task

Приложение может отображать флажки, но интерактивное поведение гарантировано не везде.

Какой редактор Markdown лучший?

Лучший редактор зависит от вашего процесса работы.

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

Выберите редактор, который поддерживает предпочитаемый вами вариант Markdown и упрощает управление документами.

Подходит ли Markdown для личной базы знаний?

Да. Markdown хорошо работает для личных баз знаний, потому что документы хранятся как читаемые текстовые файлы.

Вы можете организовывать заметки по папкам, связывать связанные документы, искать их содержимое и поддерживать резервные копии. Некоторые приложения для управления знаниями также поддерживают внутренние ссылки, метаданные, шаблоны и другие расширения.

Подходит ли Markdown для долгосрочного хранения?

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

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

В чём разница между Markdown и GitHub Flavored Markdown?

GitHub Flavored Markdown (GFM) — это расширение CommonMark, добавляющее такие возможности, как таблицы, списки задач, зачёркивание и автоссылки.

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

Можно ли преобразовать Markdown в PDF или Word?

Да. Многие редакторы и инструменты преобразования документов умеют экспортировать Markdown в HTML, PDF или форматы, совместимые с Word.

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

Заключение

Markdown — это практичный способ создавать структурированные документы, не жертвуя простотой обычного текста.

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

Чтобы начать, сосредоточьтесь на заголовках, абзацах, списках, ссылках, изображениях и блоках кода. Затем изучайте расширенные возможности, когда этого требует ваш процесс работы.

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

Начните с простого файла .md, придерживайтесь единообразного синтаксиса и развивайтесь дальше.