Markdown — это лёгкая разметка, которая позволяет форматировать текст (заголовки, списки, ссылки, выделение) обычными символами, оставаясь при этом легко читаемым в сыром виде — в отличие от HTML, который трудно читать без рендеринга.
Основной синтаксис
# Заголовок— заголовки разных уровней через количество символов#.**жирный**и*курсив*— выделение текста.[текст](url)— ссылка.- пунктили1. пункт— маркированные и нумерованные списки.- ``` — блоки кода с подсветкой синтаксиса по названию языка.
Почему markdown-таблицы — не часть оригинального Markdown
Джон Грубер в 2004 году описал Markdown прозой, а не формальной грамматикой, и в этом описании нет ни таблиц, ни зачёркнутого текста, ни списков задач. Таблицы, которые сегодня привычны в любом README на GitHub, — расширение GitHub Flavored Markdown (GFM), появившееся много позже и никогда не входившее в исходную спецификацию Грубера.
GFM как фактический стандарт
GitHub Flavored Markdown добавляет к CommonMark то, чем разработчики пользуются постоянно: таблицы через |, чекбоксы задач (- [ ] / - [x]), зачёркивание ~~текст~~ и автоматическое превращение голых ссылок в кликабельные. Поскольку огромная часть технической документации — issues, pull requests, README — живёт именно на GitHub, GFM стал тем набором правил, на который в реальности ориентируются большинство парсеров, включая этот инструмент.
Конвертация в HTML и обратно
Преобразование Markdown → HTML прямое: парсер распознаёт синтаксические конструкции и генерирует соответствующие теги. Обратное преобразование HTML → Markdown сложнее, так как HTML поддерживает значительно больше возможностей форматирования, чем базовый Markdown, поэтому часть разметки (сложные таблицы, вложенные стили) может упрощаться или теряться.
Зачем это нужно
- Быстро посмотреть, как Markdown-файл будет выглядеть после рендеринга, не публикуя его.
- Конвертировать содержимое страницы или документа в Markdown для хранения в системе контроля версий.
- Подготовить HTML-контент для вставки в приложение, принимающее только Markdown.