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.

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

Ссылка состоит из текста в квадратных скобках и адреса в круглых. Для изображения перед конструкцией ставится восклицательный знак: ![описание](image.jpg). Описание важно для доступности, а относительный путь вычисляется от расположения документа или правил системы.

Пример готового Markdown-документа

# Проверка страницы

Перед публикацией проверьте **метаданные** и ссылки.

## Что проверить

- заголовок страницы;
- описание;
- канонический адрес.

Подробности есть в [руководстве](https://example.ru/guide/).

> Сначала проверяйте тестовую версию страницы.

После преобразования получится H1, абзац с элементом strong, H2, маркированный список, ссылка и цитата. Конкретные классы и оформление конвертер обычно не добавляет: за представление отвечает шаблон сайта.

Как преобразовать Markdown в HTML

Для базовой разметки откройте конвертер Markdown и HTML, выберите направление Markdown → HTML, вставьте исходник и скопируйте результат. Инструмент поддерживает заголовки, абзацы, маркированные и нумерованные списки, ссылки с HTTP- или HTTPS-адресом, цитаты, жирный текст, курсив и встроенный код.

  1. Проверьте исходный Markdown в режиме предварительного просмотра.
  2. Преобразуйте документ в HTML.
  3. Просмотрите теги: уровни заголовков, списки и ссылки должны соответствовать структуре.
  4. Очистите HTML, если исходник получен от пользователя или внешней системы.
  5. Вставьте результат в 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. Если содержимое прислал внешний пользователь, злоумышленник может попытаться добавить опасные элементы, обработчики событий или ссылки с нежелательной схемой.

Надёжная схема выглядит так:

  1. парсер преобразует Markdown в HTML по заданному варианту синтаксиса;
  2. серверный санитайзер оставляет только разрешённые теги и атрибуты;
  3. ссылки проверяются по допустимым протоколам;
  4. результат сохраняется или выводится в безопасном контексте;
  5. политика безопасности содержимого браузера снижает последствия пропущенной ошибки.

Экранирование, парсинг и очистка — разные операции. Экранирование показывает символы как текст, парсер строит HTML, а санитайзер удаляет потенциально опасные конструкции.

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

Markdown в редакционном процессе

Формат особенно полезен, когда один материал проходит через несколько систем. Исходник остаётся простым текстом, хорошо сравнивается по версиям и может преобразовываться в HTML, документацию или сообщение. Чтобы процесс был предсказуемым:

  1. выберите поддерживаемый диалект и запишите правила;
  2. подготовьте шаблон с допустимыми элементами;
  3. показывайте автору предпросмотр именно целевой системы;
  4. разделяйте содержание, метаданные и оформление;
  5. проверяйте ссылки, изображения и заголовки автоматически;
  6. храните исходник, если потребуется повторная конвертация.

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

Частые ошибки

  • Нет пробела после решётки. Строка #Заголовок может остаться обычным текстом.
  • Смешаны разные способы выделения. Непарные звёздочки захватывают лишний фрагмент.
  • Нарушена иерархия. После H1 сразу используется H4 без смысловой причины.
  • Сломаны скобки ссылки. Адрес или подпись не закрыты, внутри URL есть необработанные символы.
  • Ожидаются неподдерживаемые расширения. Таблица или зачёркивание работают в одном редакторе, но не в другом.
  • Скопирована визуальная разметка. Из Word попадают типографические символы, но не логическая структура Markdown.
  • HTML публикуется без очистки. Особенно опасно для пользовательского содержимого.
  • Конвертация туда и обратно считается полностью обратимой. Неподдерживаемая структура и атрибуты теряются.

Частые вопросы

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

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

Чем Markdown отличается от HTML?

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

Можно ли вставить Markdown прямо на сайт?

Браузер не отображает Markdown как оформленную веб-страницу сам по себе. Сайт должен преобразовать разметку в HTML на сервере, во время сборки или в браузере.

Теряется ли форматирование при конвертации?

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

Можно ли использовать Markdown из ответа нейросети?

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

Дополнительные материалы: справка CommonMark и руководство MDN по HTML.