Если вы хоть раз выделяли слово звездочками в Telegram, чтобы сделать его жирным, – вы уже использовали Markdown. Этот язык разметки незаметно окружает нас: он применяется в GitHub, приложениях для заметок, технической документации и даже в ответах нейросетей.
Он появился как более простой способ подготовки текстов, которые затем можно преобразовать в HTML. Вместо тегов используются привычные символы, с помощью которых можно создавать заголовки, списки, ссылки, таблицы и другие элементы оформления. Базовый синтаксис компактный и запоминается без специальной подготовки – освоить его может практически любой пользователь.
В статье разберем, что такое формат Markdown, как он появился, где используется, какие у него преимущества и ограничения, а также подробно рассмотрим синтаксис на примерах.
Что такое Markdown
Markdown – это облегченный язык разметки, который позволяет форматировать текст с помощью простых символов. Вместо HTML-тегов используются привычные знаки: решетки для заголовков, звездочки для выделения текста, дефисы для списков и другие элементы оформления.
В начале 2000-х для публикации материалов в интернете часто приходилось использовать HTML. Несмотря на широкие возможности, он не слишком удобен для повседневной работы с текстом: даже простое форматирование требует использования тегов. В 2004 году Джон Грубер совместно с Аароном Шварцем предложили более простое решение – Markdown. Его идея заключалась в том, чтобы текст оставался понятным человеку даже без обработки, а при необходимости автоматически преобразовывался в HTML.
Название Markdown – игра слов с английским markup («разметка», буквально «наценка», от типографских пометок редактора на полях рукописи). Грубер противопоставил ему markdown – «уценку»: разметка Markdown стала настолько простой, что почти исчезла из виду.
Файл Markdown представляет собой обычный текстовый документ с расширением .md. Его можно открыть практически в любом текстовом редакторе – от «Блокнота» до Visual Studio Code, – и вы увидите именно исходные символы разметки: решетки, звездочки, дефисы, а не готовое оформление. Само по себе открытие файла не превращает его в HTML – текст остается размеченным, но не обработанным.
Чтобы получить отформатированный результат, нужен парсер – программа, которая читает символы разметки и преобразует документ в HTML или другой формат, например, PDF или DOCX. Именно так работают GitHub, редакторы заметок и большинство сервисов, которые показывают Markdown уже в готовом, отформатированном виде.
Изначально у Markdown не было строгого стандарта – Грубер описал только базовые правила и опубликовал первый скрипт-конвертер. Из-за этого разные сервисы со временем начали трактовать неописанные случаи по-своему, что и привело к появлению диалектов. Сегодня наиболее распространены два:
- CommonMark – спецификация, которая подробно описывает правила работы Markdown;
- GitHub Flavored Markdown (GFM) – расширение CommonMark, добавляющее поддержку таблиц, зачеркнутого текста, чек-листов и некоторых других элементов.
При работе с Markdown стоит учитывать, что разные редакторы и сервисы могут поддерживать разные возможности языка.
Где используют Markdown
Markdown вышел далеко за пределы разработки ПО и сегодня встречается в самых разных сценариях – от совместной работы над кодом до повседневной переписки.
GitHub и GitLab
Markdown давно стал стандартом для платформ совместной разработки, таких как GitHub и GitLab. С его помощью оформляют README-файлы с описанием проектов, инструкции по установке, документацию, страницы Wiki, а также комментарии к изменениям и задачам. Такой подход позволяет быстро создавать структурированные документы без использования HTML.
Документация и базы знаний
Markdown широко применяется для создания пользовательской и технической документации. В этом формате пишут инструкции, справочные материалы, ответы на часто задаваемые вопросы, внутренние регламенты и статьи для корпоративных баз знаний. Поскольку это обычный текст, документы удобно хранить в системе контроля версий, совместно редактировать и при необходимости экспортировать в другие форматы.
Приложения для заметок
Многие редакторы заметок поддерживают Markdown полностью или частично – например, Obsidian, Joplin и Logseq. Формат Markdown помогает быстро структурировать записи с помощью заголовков, списков, ссылок и таблиц. При этом перенос заметок между приложениями не всегда проходит гладко: некоторые редакторы добавляют собственные расширения синтаксиса – например, свои варианты внутренних ссылок или блочную структуру записей, – и при переносе в другое приложение такие элементы могут отображаться некорректно или потребовать ручной доработки.
Мессенджеры и ИИ-сервисы
С элементами Markdown многие пользователи сталкиваются ежедневно, даже не задумываясь об этом. В Telegram и Discord отдельные элементы синтаксиса используются для форматирования сообщений. Поддержку Markdown также можно встретить в сервисах на базе искусственного интеллекта, например, ChatGPT и Claude, где он помогает структурировать ответы, оформлять списки, таблицы, ссылки и фрагменты кода.
Плюсы и минусы разметки Markdown
Идея Markdown в том, чтобы было проще читать, писать и редактировать тексты. Он позволяет быстро создавать структурированные документы, сохраняя при этом удобство обычного текстового файла. Разберем, что из этого получилось на практике.
Плюсы:
- Простота освоения – не нужно изучать HTML или разбираться в сложных настройках редакторов. Основные элементы разметки запоминаются быстро, поэтому Markdown подходит не только разработчикам, но и всем, кто регулярно работает с текстами, документацией или заметками;
- Скорость работы – можно писать и оформлять текст одновременно, не переключаясь между содержимым и панелью инструментов. Особенно удобно это при создании инструкций и технических материалов;
- Читаемость исходного текста – документ можно читать даже без специального редактора. В отличие от HTML, где текст окружен множеством тегов, Markdown-файл остается похожим на обычный текстовый документ;
- Поддержка различными сервисами – один и тот же файл можно использовать в редакторах заметок, системах документации и репозиториях кода, не осваивая каждый раз новый способ оформления.
Минусы:
- Ограниченные возможности оформления – Markdown не предназначен для сложной верстки: в нем нельзя гибко управлять внешним видом документа, создавать сложные макеты или добавлять интерактивные компоненты;
- Зависимость от реализации – у Markdown нет единого стандарта, поэтому разные платформы могут по-своему обрабатывать отдельные элементы разметки – один и тот же документ иногда отображается немного иначе в разных приложениях;
- Не подходит для всех задач – формат отлично подходит для текстов, документации и инструкций, но не заменяет полноценные текстовые редакторы или инструменты веб-разработки для сложного оформления, макетов и презентаций.
По сути, все ограничения Markdown – оборотная сторона его главного достоинства: формат жертвует гибкостью оформления ради простоты и скорости написания текста. Если задача – быстро зафиксировать структурированную мысль или инструкцию, эти плюсы перевешивают минусы. Если же нужен точный визуальный контроль над страницей, стоит рассматривать HTML или специализированные редакторы.
Примеры синтаксиса Markdown
Основные возможности Markdown связаны со структурой текста: можно создавать заголовки, добавлять списки, выделять важную информацию, вставлять ссылки, изображения и фрагменты кода. Ниже – базовый синтаксис с примерами разметки.
Заголовки
Чтобы оформить заголовок, перед текстом ставят символ #: чем больше символов, тем ниже уровень заголовка.
Например:
# Заголовок первого уровня
## Раздел статьи
### Подраздел
Списки
Маркированный список оформляется дефисом - перед каждым пунктом. Вместо дефиса можно использовать звездочку * или плюс + – на результат это не влияет, главное не смешивать разные символы внутри одного списка:
Первый маркированный список:
- Первый пункт
- Второй пункт
Второй маркированный список:
* Первый пункт
* Второй пункт
Третий маркированный список:
+ Первый пункт
+ Второй пункт
Нумерованный список оформляется цифрой с точкой или скобкой. Примеры подобных списков:
Первый нумерованный список:
1. Первый шаг
2. Второй шаг
3. Третий шаг
Второй нумерованный список:
1) Первый шаг
2) Второй шаг
3) Третий шаг
Списки могут быть вложенными – для этого достаточно в Markdown сделать отступ в два-четыре пробела перед дефисом или цифрой. Так удобно оформлять многоуровневые структуры, например, разделы документации:
- Языки программирования
- Backend
- Python
- PHP
- Frontend
- JavaScript
- TypeScript
- Инструменты
- Редакторы кода
- Системы контроля версий
Отдельный вид списка – чек-лист с отметками выполнения. В спецификации CommonMark его нет: чек-лист появился позже как расширение диалекта GFM (GitHub Flavored Markdown), поэтому сегодня он поддерживается на GitHub, в Obsidian и многих таск-трекерах, но не гарантированно работает в сервисах, ориентированных на «чистый» Markdown или CommonMark. Пишется так же, как обычный маркированный список – после дефиса -, звездочки * или плюса + ставят пробел и добавляют квадратные скобки []: пустые (с пробелом внутри) – для невыполненного пункта, со строчной x внутри – для выполненного:
- [x] Первый пункт выполнен
- [ ] Второй пункт еще не выполнен
Пробел внутри квадратных скобок обязателен: пустые скобки без пробела ([]) не превратятся в чек-бокс и отобразятся как обычный текст.
Абзацы и переносы строк
Чтобы начать новый абзац, между строками текста нужно оставить пустую строку – одно нажатие Enter парсер проигнорирует и объединит строки в одну. Например:
Первая строка текста.
Вторая строка сразу под ней, без пустой строки.
Третья строка отделена пустой строкой.
После обработки парсером первая и вторая строки сольются в один абзац, а третья станет отдельным. Это частая причина ситуации, когда текст в готовом документе выглядит не так, как задумывалось: если два абзаца неожиданно объединились в один, скорее всего, между ними просто не хватает пустой строки в исходном файле.
Если нужен перенос строки без создания нового абзаца – например, короткая подпись из нескольких строк под изображением, – в конце каждой строки, кроме последней, ставят два пробела (их не видно, но парсер считывает такой отступ как знак переноса) или обратный слеш \:
площадь Карла Фаберже, д. 8Б, оф. 723.[пробел][пробел]
Санкт-Петербург[пробел][пробел]
195112
площадь Карла Фаберже, д. 8Б, оф. 723.\
Санкт-Петербург\
195112
Такой перенос выглядит как обычный перевод строки внутри одного абзаца – в отличие от пустой строки, которая создала бы три разных абзаца с отступами между ними.
Выделение текста
Markdown позволяет выделять важные фрагменты текста без использования панели форматирования.
Для выделения текста используется разное количество звездочек * — их число определяет, каким образом текст будет выделен: жирным, курсивом или жирным курсивом. Для зачеркнутого текста используется отдельный символ — тильда ~~. Пример:
**жирный текст**
*курсив*
***жирный курсив***
~~зачеркнутый текст~~
Такие элементы помогают акцентировать внимание на важных предупреждениях, терминах или отдельных частях документа. Зачеркивание – расширение диалекта GFM, поэтому оно поддерживается не всеми сервисами, в отличие от жирного текста и курсива.
Для жирного текста и курсива вместо звездочек можно использовать нижнее подчеркивание _ – результат будет тем же:
__жирный текст__
_курсив_
___жирный курсив___
Для зачеркнутого текста альтернативы нет – только тильды ~~.
Разница между звездочками и подчеркиванием проявляется при использовании их в середине слова. Звездочки выделяют фрагмент, даже если он стоит прямо между буквами:
Для тестирования использовалась **демо**версия программы.
А подчеркивания в этой же позиции не сработают и останутся обычными символами:
Для тестирования использовалась __демо__версия программы.
Это сделано специально, чтобы не портить идентификаторы вроде user_name_field или some_variable_name, где подчеркивания – часть названия, а не разметка. Поэтому для выделения части слова используйте звездочки, а подчеркивания – только когда выделяемый фрагмент со всех сторон окружен пробелами или знаками препинания.
Если символ выделения нужен в тексте буквально, а не как элемент разметки, перед ним ставят обратный слеш \ – это называется экранированием: сравните разметку Markdown и полученный результат на следующем примере:
Звездочки с экранированием: \*звездочки в тексте\*
Звездочки без экранирования: *звездочки в тексте*
В первой строке обратный слеш не дает парсеру распознать звездочки как разметку, поэтому они отображаются как обычные символы. Во второй строке звездочки без слеша парсер воспринимает как открывающий и закрывающий символы курсива и превращает текст между ними в курсив.
Ссылки
Чтобы оформить ссылку, текст, который должен стать кликабельным, помещают в квадратные скобки [], а сразу за ними в круглых скобках () указывают адрес:
Статья размещена в [базе знаний Beget](https://beget.com/ru/kb/how-to)
Изображения
Изображение оформляется так же, как ссылка, но перед квадратными скобками добавляется восклицательный знак !. В квадратных скобках указывают альтернативный текст (можно не указывать), а в круглых – путь к файлу или ссылку на него:


Если изображение не удастся загрузить по указанной ссылке или пути, вместо него обычно показывается альтернативный текст (alt), если он задан. Если alt не указан, поведение зависит от конкретного браузера или сервиса: где-то останется пустое место, а где-то появится стандартная иконка «битого» изображения. Пример:

Код
Короткие фрагменты кода выделяют одиночными обратными кавычками ` прямо внутри предложения – так удобно ссылаться на команды или названия файлов, не выделяя их в отдельный блок. Например, в инструкции можно написать: «обновите список пакетов командой sudo apt update, а затем установите nginx командой sudo apt install nginx». В исходном тексте это выглядит так:
Обновите список пакетов командой `sudo apt update`, а затем установите nginx командой `sudo apt install nginx`.
Для более крупных фрагментов – например, целого скрипта – используют блок кода с тройными обратными кавычками ``` или тильдами ~~~ (тильды удобны, если в самом коде уже встречаются обратные кавычки – так парсер не перепутает их с границей блока). После первой тройки можно указать язык, тогда код подсветится синтаксисом:
```bash
sudo apt update
sudo apt upgrade -y
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
```
Пример блока кода с отсутствующей подсветкой:

Таблицы
Таблицы – расширение диалекта GFM: в спецификации CommonMark их нет, поэтому в некоторых сервисах и конвертерах, ориентированных на «чистый» Markdown, они могут не поддерживаться.
Чтобы оформить таблицу, разделите колонки в каждой строке вертикальной чертой |, а во второй строке проставьте дефисы - – они отделяют шапку таблицы от содержимого. Если для какой-то ячейки нет данных, просто ничего не пишите между вертикальными чертами – саму черту убирать нельзя, иначе строка развалится и парсер не поймет, к какой колонке относится оставшееся значение. Количество дефисов в каждой колонке разделительной строки нарочно показано разным – один, три и больше, – чтобы наглядно продемонстрировать: спецификация не требует конкретного числа, работает любое:
| Формат | Расширение | Комментарий |
|-|---|-------------|
| Markdown | .md ||
| HTML | .html | Требует браузера |
Однако на практике часть редакторов и конвертеров всё же требует не менее трех дефисов на колонку, поэтому три дефиса – общепринятый стандарт, которого стоит придерживаться, чтобы таблица корректно отобразилась в любом сервисе, даже если формально хватило бы и одного. Важно и другое условие: количество ячеек в разделительной строке должно совпадать с количеством ячеек в строке заголовка – если количество не сходится, таблица не распознается вовсе и отобразится как обычный текст.
Двоеточиями во второй строке можно задать выравнивание для каждой колонки отдельно: двоеточие слева – выравнивание по левому краю, двоеточия с обеих сторон – по центру, двоеточие справа – по правому краю:
| По левому краю | По центру | По правому краю |
|:---|:---:|---:|
| Markdown | .md | 2 КБ |
| HTML | .html | 6 КБ |
Горизонтальная черта
Правильное название этого элемента – горизонтальная черта или разделитель; в HTML ей соответствует тег <hr>. Она визуально отделяет один смысловой блок текста от другого. Создается тремя дефисами, звездочками или подчеркиваниями на отдельной строке, обязательно отбитой пустыми строками сверху и снизу:
Здесь заканчивается первый смысловой блок текста, например, описание одного способа решения задачи.
---
А здесь начинается новый блок – например, альтернативный способ или следующий шаг инструкции.
При отображении между двумя абзацами появится горизонтальная линия – она визуально разделяет разные по смыслу части документа без дополнительных заголовков.
Цитаты
Чтобы оформить цитату, перед строкой ставят символ >. Несколько знаков > подряд создают вложенную цитату:
> Текст цитаты
>> Текст вложенной цитаты
Заключение
Markdown стал популярным благодаря простому подходу к работе с текстом: он позволяет сосредоточиться на содержании, а не на настройке оформления. При этом формат остается достаточно гибким для создания документации, заметок, инструкций и других материалов. Конечно, Markdown не заменяет все существующие инструменты, но для большинства задач, где важны структура и скорость работы, он остается удобным и востребованным решением.
Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел «Помощь и поддержка»), а если вы захотите обсудить наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.