Markdown — облегчённый язык разметки. Автор добавляет к обычному тексту небольшие обозначения, а программа преобразует их в структурированный документ. Например, строка с решёткой становится заголовком, звёздочки выделяют фрагмент, а дефисы создают список.
Главное преимущество формата — исходник можно читать без предварительного отображения. В HTML заголовок выглядит как <h2>Раздел</h2>, а в Markdown — как ## Раздел. Поэтому формат удобен для документации, заметок, README-файлов, публикаций и диалогов с инструментами на основе ИИ.
Что такое Markdown простыми словами
Markdown хранится как обычный текст. Внутри нет скрытого оформления, характерного для офисного документа: структура задаётся видимыми символами. Файл обычно получает расширение .md или .markdown, но сама разметка может находиться в поле CMS, базе данных или сообщении.
Формат создал Джон Грубер при участии Аарона Шварца, чтобы текст было удобно писать, читать и преобразовывать в HTML. Со временем появились совместимые варианты с дополнительными возможностями. Один из наиболее известных формализованных вариантов — CommonMark.
Markdown не является визуальным редактором и не задаёт внешний вид страницы. Он описывает смысловую структуру, а цвета, размеры и отступы после преобразования определяются стилями сайта.
Где используется Markdown
- Документация и README. Файлы хранятся рядом с кодом и удобно сравниваются в системе контроля версий.
- Статические генераторы сайтов. Markdown превращается в HTML во время сборки проекта.
- Базы знаний и редакторы заметок. Текст остаётся переносимым между программами.
- CMS и блоги. Автор пишет простую разметку, а система выводит оформленную публикацию.
- Мессенджеры и форумы. Похожие обозначения используются для жирного текста, кода и ссылок.
- Нейросети. Модели часто возвращают ответы с заголовками, списками и блоками кода в Markdown.
Не каждая площадка поддерживает одинаковый набор правил. Telegram, GitHub, редактор документации и конкретная CMS могут по-разному обрабатывать таблицы, переносы строк, подчёркивание и вложенные списки. Перед публикацией нужно знать диалект целевой системы.
Основной синтаксис Markdown
| Элемент | Markdown | Результат в HTML |
|---|---|---|
| Заголовок | ## Раздел | <h2>Раздел</h2> |
| Жирный текст | **важно** | <strong>важно</strong> |
| Курсив | *термин* | <em>термин</em> |
| Ссылка | [текст](https://example.ru) | <a href="…">текст</a> |
| Маркированный список | - пункт | <ul><li>… |
| Нумерованный список | 1. пункт | <ol><li>… |
| Цитата | > текст | <blockquote>… |
| Встроенный код | `команда` | <code>команда</code> |
Заголовки
Количество решёток задаёт уровень от первого до шестого. После решёток ставится пробел. В публикации обычно используют один H1 для названия страницы, а разделы начинают с H2.
# Название документа
## Основной раздел
### Подраздел
Списки
Маркированный список начинается с дефиса или звёздочки, нумерованный — с числа и точки. Между обозначением и текстом нужен пробел. Вложенные уровни зависят от отступов и поддерживаемого варианта Markdown.
Ссылки и изображения
Ссылка состоит из текста в квадратных скобках и адреса в круглых. Для изображения перед конструкцией ставится восклицательный знак: . Описание важно для доступности, а относительный путь вычисляется от расположения документа или правил системы.
Пример готового Markdown-документа
# Проверка страницы
Перед публикацией проверьте **метаданные** и ссылки.
## Что проверить
- заголовок страницы;
- описание;
- канонический адрес.
Подробности есть в [руководстве](https://example.ru/guide/).
> Сначала проверяйте тестовую версию страницы.
После преобразования получится H1, абзац с элементом strong, H2, маркированный список, ссылка и цитата. Конкретные классы и оформление конвертер обычно не добавляет: за представление отвечает шаблон сайта.
Как преобразовать Markdown в HTML
Для базовой разметки откройте конвертер Markdown и HTML, выберите направление Markdown → HTML, вставьте исходник и скопируйте результат. Инструмент поддерживает заголовки, абзацы, маркированные и нумерованные списки, ссылки с HTTP- или HTTPS-адресом, цитаты, жирный текст, курсив и встроенный код.
- Проверьте исходный Markdown в режиме предварительного просмотра.
- Преобразуйте документ в HTML.
- Просмотрите теги: уровни заголовков, списки и ссылки должны соответствовать структуре.
- Очистите HTML, если исходник получен от пользователя или внешней системы.
- Вставьте результат в CMS и проверьте итоговую страницу на компьютере и телефоне.
Наш конвертер предназначен для базовых документов. Он не преобразует таблицы, изображения, зачёркивание, задачи с флажками, многострочные блоки кода и сложную вложенность. Для таких материалов используйте парсер, совместимый с диалектом исходного документа, и тестируйте результат.
Как преобразовать HTML в Markdown
Обратное преобразование полезно при переносе статьи из CMS в документацию или текстовый репозиторий. Конвертер читает структуру HTML и заменяет поддерживаемые элементы обозначениями Markdown. Но операция не всегда обратима без потерь.
HTML содержит больше возможностей: классы, идентификаторы, таблицы, контейнеры, встроенные медиа и произвольные атрибуты. Простая Markdown-разметка не умеет выразить их все. Поэтому после преобразования нужно проверить:
- иерархию заголовков;
- вложенные и нумерованные списки;
- адреса и подписи ссылок;
- изображения и альтернативный текст;
- таблицы, сноски и блоки кода;
- элементы, созданные классами и JavaScript.
Не используйте HTML страницы целиком вместе с меню, формами и служебными блоками. Сначала выделите содержимое статьи, иначе в Markdown попадут навигация и подписи интерфейса.
Почему Markdown отображается по-разному
Markdown развивался как набор понятных правил, а разные продукты добавляли собственные расширения. CommonMark уточняет неоднозначные места базового синтаксиса. GitHub Flavored Markdown дополняет его таблицами, зачёркиванием, списками задач и автоматическим распознаванием некоторых ссылок. У мессенджеров могут быть собственные варианты и способы экранирования.
Из-за различий один документ может правильно выглядеть в редакторе, но сломаться после переноса. Перед автоматизацией зафиксируйте:
- какой вариант Markdown принимает источник и получатель;
- разрешён ли HTML внутри Markdown;
- как обрабатываются переносы строк;
- поддерживаются ли таблицы, сноски и блоки кода;
- какие символы нужно экранировать обратной косой чертой.
Для переносимого документа используйте базовые конструкции и не полагайтесь без необходимости на редкие расширения. Если сложный элемент критичен, проверьте его в целевой системе заранее.
Безопасность при преобразовании в HTML
Markdown часто ошибочно считают безопасным только потому, что он проще HTML. Но итог конвертации — HTML, а некоторые парсеры разрешают вставлять исходные HTML-теги прямо в Markdown. Если содержимое прислал внешний пользователь, злоумышленник может попытаться добавить опасные элементы, обработчики событий или ссылки с нежелательной схемой.
Надёжная схема выглядит так:
- парсер преобразует Markdown в HTML по заданному варианту синтаксиса;
- серверный санитайзер оставляет только разрешённые теги и атрибуты;
- ссылки проверяются по допустимым протоколам;
- результат сохраняется или выводится в безопасном контексте;
- политика безопасности содержимого браузера снижает последствия пропущенной ошибки.
Экранирование, парсинг и очистка — разные операции. Экранирование показывает символы как текст, парсер строит HTML, а санитайзер удаляет потенциально опасные конструкции.
Клиентский предпросмотр удобен, но не является защитой сервера: запрос можно отправить в обход интерфейса. Проверка должна выполняться там, где данные принимаются и публикуются.
Markdown в редакционном процессе
Формат особенно полезен, когда один материал проходит через несколько систем. Исходник остаётся простым текстом, хорошо сравнивается по версиям и может преобразовываться в HTML, документацию или сообщение. Чтобы процесс был предсказуемым:
- выберите поддерживаемый диалект и запишите правила;
- подготовьте шаблон с допустимыми элементами;
- показывайте автору предпросмотр именно целевой системы;
- разделяйте содержание, метаданные и оформление;
- проверяйте ссылки, изображения и заголовки автоматически;
- храните исходник, если потребуется повторная конвертация.
Не стоит превращать Markdown в универсальный формат любой ценой. Для сложной журнальной вёрстки, интерактивных блоков и компонентов лучше использовать структурированную модель CMS. Markdown остаётся удобным слоем для основного текста.
Частые ошибки
- Нет пробела после решётки. Строка
#Заголовокможет остаться обычным текстом. - Смешаны разные способы выделения. Непарные звёздочки захватывают лишний фрагмент.
- Нарушена иерархия. После H1 сразу используется H4 без смысловой причины.
- Сломаны скобки ссылки. Адрес или подпись не закрыты, внутри URL есть необработанные символы.
- Ожидаются неподдерживаемые расширения. Таблица или зачёркивание работают в одном редакторе, но не в другом.
- Скопирована визуальная разметка. Из Word попадают типографические символы, но не логическая структура Markdown.
- HTML публикуется без очистки. Особенно опасно для пользовательского содержимого.
- Конвертация туда и обратно считается полностью обратимой. Неподдерживаемая структура и атрибуты теряются.
Частые вопросы
Markdown — это язык программирования?
Нет. Это язык разметки: он обозначает структуру и выделения текста, но сам по себе не описывает алгоритмы и не выполняет вычисления.
Чем Markdown отличается от HTML?
Markdown компактнее и легче читается в исходном виде. HTML содержит больше элементов и атрибутов и является стандартной разметкой веб-страниц. Markdown часто служит удобным исходником, который затем превращается в HTML.
Можно ли вставить Markdown прямо на сайт?
Браузер не отображает Markdown как оформленную веб-страницу сам по себе. Сайт должен преобразовать разметку в HTML на сервере, во время сборки или в браузере.
Теряется ли форматирование при конвертации?
Базовые элементы обычно сохраняются. Возможности, которых нет в целевом формате или конкретном парсере, могут быть упрощены или потеряны. Особенно это касается сложного HTML, таблиц и расширений.
Можно ли использовать Markdown из ответа нейросети?
Да, после проверки содержания и разметки. Удалите служебные ограждения блока кода, если они не нужны, проверьте ссылки и преобразуйте документ парсером, соответствующим вашей системе.
Дополнительные материалы: справка CommonMark и руководство MDN по HTML.