Конвертация HTML в Markdown преобразует HTML-разметку в Markdown — облегчённый синтаксис форматирования простого текста, созданный Джоном Грубером в 2004 году. Markdown был разработан так, чтобы быть читаемым без рендеринга. Там, где HTML требует открывающих и закрывающих тегов вроде <strong> и <a href="">, Markdown использует краткие символы: **жирный**, [ссылки](url) и # заголовки. Конвертация HTML в Markdown даёт файлы, которые проще читать, редактировать и версионировать, чем исходный HTML.
В процессе конвертации HTML-элементы сопоставляются с эквивалентами Markdown. Тег <h2> становится ##, тег <ul><li> — элементом списка - item, а тег <a> — конструкцией [текст](url). Некоторые HTML-элементы не имеют прямого эквивалента в Markdown: например, <div>, <span> или пользовательские атрибуты данных. Как правило, конвертеры удаляют эти теги или передают их как исходный HTML — в зависимости от настроек.
Markdown стал стандартным форматом написания документации для разработчиков (GitHub, GitLab, Bitbucket), генераторов статических сайтов (Hugo, Jekyll, Astro), приложений для заметок (Obsidian, Notion) и технических блогов. Конвертация существующего HTML-контента в Markdown — распространённый шаг при миграции сайтов, импорте контента из CMS или архивировании веб-страниц в переносимом формате. В отличие от HTML, файлы Markdown формируют чистые диффы в системах контроля версий, что делает код-ревью изменений документации практичным.
Зачем использовать конвертер HTML в Markdown?
Переписывать HTML в Markdown вручную — медленно и ненадёжно, особенно для страниц с вложенными списками, таблицами или десятками ссылок. Автоматический конвертер выполняет структурное сопоставление мгновенно и единообразно.
⚡
Мгновенная конвертация в браузере
Вставьте HTML и получите вывод в формате Markdown за миллисекунды. Никаких обращений к серверу, никакого ожидания очередей обработки. Конвертация полностью выполняется в вашем браузере на JavaScript.
🔒
Ваши данные остаются приватными
Ваш HTML никогда не покидает ваше устройство. Вся обработка происходит на стороне клиента — нет загрузки, нет журналирования, нет доступа третьих лиц к вашему контенту.
📝
Сохранение структуры документа
Заголовки, списки, ссылки, изображения, блоки кода и таблицы сопоставляются с правильными эквивалентами Markdown. Вложенные структуры и встроенное форматирование обрабатываются рекурсивно.
🔀
Без регистрации и установки
Откройте инструмент и начните конвертацию. Ничего не нужно устанавливать, настраивать API-ключи или заполнять форму регистрации. Работает на любом устройстве с современным браузером.
Сценарии использования HTML to Markdown
Frontend-разработчик: миграция CMS
Экспортируйте записи блога или страницы из WordPress, Drupal или headless CMS в формате HTML, а затем конвертируйте их в Markdown для использования с генераторами статических сайтов — Next.js, Astro или Hugo.
Backend-инженер: документация API
Конвертируйте автоматически сгенерированные HTML-документы API в Markdown-файлы, которые хранятся рядом с исходным кодом. Markdown-документация интегрируется с рендерингом GitHub и может версионироваться вместе с описываемым кодом.
DevOps: конвертация runbook
Превращайте страницы внутренней wiki (Confluence, SharePoint), экспортированные в HTML, в Markdown-файлы runbook, хранящиеся в вашем Git-репозитории рядом с описываемым инфраструктурным кодом.
QA-инженер: документация тест-кейсов
Конвертируйте HTML-отчёты о тестировании или планы ручного тестирования из веб-инструментов в Markdown-файлы, которые можно проверять в pull request-ах рядом с верифицируемыми изменениями кода.
Инженер по данным: очистка веб-скрапинга
Удаляйте HTML-обёртку с веб-страниц и получайте чистый текст в формате Markdown. Это убирает навигацию, рекламу и разметку макета, сохраняя содержимое и структуру статьи.
Студент: исследовательские заметки
Копируйте контент с веб-ресурсов и конвертируйте HTML в Markdown для импорта в Obsidian, Notion или любую систему заметок на базе Markdown. Сохраняет заголовки, ссылки и форматирование.
Справочник по сопоставлению элементов HTML и Markdown
В таблице ниже показано, как распространённые HTML-элементы сопоставляются с эквивалентами Markdown. Сопоставление следует соглашениям GitHub-Flavored Markdown (GFM), который расширяет спецификацию CommonMark таблицами, зачёркиванием и списками задач. Элементы, не перечисленные здесь (например, <div>, <form> или пользовательские веб-компоненты), не имеют эквивалента в Markdown и либо удаляются, либо передаются как исходный HTML.
HTML-элемент
Синтаксис Markdown
Примечания
<h1>...<h6>
# ... ######
ATX headings, level matches tag number
<p>
Blank line separation
Double newline between paragraphs
<strong>, <b>
**text**
Bold / strong emphasis
<em>, <i>
*text*
Italic / emphasis
<a href="url">
[text](url)
Inline link with optional title
<img src="url">

Image with alt text
<ul><li>
- item
Unordered list with dash or asterisk
<ol><li>
1. item
Ordered list, numbers restart per block
<blockquote>
> text
Block quote, nestable with >>
<code>
`code`
Inline code span
<pre><code>
```lang\ncode\n```
Fenced code block with optional language
<hr>
---
Horizontal rule (three dashes)
<table>
| col | col |
GFM table syntax with alignment
<del>, <s>
~~text~~
Strikethrough (GFM extension)
Разновидности Markdown: GFM, CommonMark и оригинал
Markdown не везде одинаков. Формат вывода важен, поскольку разные платформы парсят Markdown по-разному. Три наиболее распространённые разновидности — GitHub-Flavored Markdown (GFM), CommonMark и оригинальный Markdown Грубера.
GitHub-Flavored Markdown (GFM)
Наиболее широко используемая разновидность. Добавляет таблицы (pipe-синтаксис), зачёркивание (~~текст~~), списки задач (- [x]) и автоссылки на URL. Используется GitHub, GitLab и большинством инструментов для разработчиков. Этот конвертер по умолчанию выводит Markdown, совместимый с GFM.
CommonMark
Строгая спецификация, устраняющая неоднозначности в оригинальном синтаксисе Markdown. Определяет точные правила продолжения списков, разбора выделения и вложенности блочных элементов. Используется как основа для GFM и многих генераторов статических сайтов.
Оригинальный Markdown
Спецификация Джона Грубера 2004 года. Не поддерживает таблицы, блоки кода с ограждением и зачёркивание. Большинство современных инструментов рассматривают его как подмножество CommonMark. Сегодня редко используется как целевой формат.
Примеры кода
Примеры на JavaScript (Turndown), Python (markdownify и html2text), Go и Pandoc в командной строке.
JavaScript (Turndown)
import TurndownService from 'turndown'
const turndown = new TurndownService({ headingStyle: 'atx' })
const html = '<h1>Title</h1><p>A <strong>bold</strong> paragraph.</p>'
const md = turndown.turndown(html)
console.log(md)
// → "# Title\n\nA **bold** paragraph."
Python (markdownify)
from markdownify import markdownify
html = '<h2>Section</h2><ul><li>First</li><li>Second</li></ul>'
md = markdownify(html, heading_style='ATX')
print(md)
# → "## Section\n\n- First\n- Second"
Python (html2text)
import html2text
converter = html2text.HTML2Text()
converter.body_width = 0 # disable line wrapping
html = '<p>Visit <a href="https://example.com">Example</a> for details.</p>'
md = converter.handle(html)
print(md)
# → "Visit [Example](https://example.com) for details."
# Convert an HTML file to Markdown
pandoc input.html -f html -t markdown -o output.md
# Pipe HTML from stdin
echo '<p>Hello <em>world</em></p>' | pandoc -f html -t markdown
# → Hello *world*
# Use GitHub-Flavored Markdown output
pandoc input.html -f html -t gfm -o output.md
Часто задаваемые вопросы
Какие HTML-элементы нельзя конвертировать в Markdown?
В Markdown нет эквивалентов для <div>, <span>, <form>, <input>, <iframe> и любых элементов с пользовательскими CSS-классами и стилями. Большинство конвертеров удаляют эти теги, оставляя только внутренний текст. Некоторые конвертеры могут передавать неподдерживаемый HTML без изменений — это допустимо, поскольку спецификация Markdown явно разрешает встроенный HTML. Если нужно сохранить эти элементы, настройте конвертер на сохранение исходного HTML, а не его удаление.
Как конвертируются HTML-таблицы в Markdown?
HTML-таблицы сопоставляются с синтаксисом pipe-таблиц GFM: | Заголовок | Заголовок | с разделительной строкой | --- | --- |. Таблицы GFM не поддерживают colspan, rowspan и стилизацию на уровне ячеек. Сложные таблицы с объединёнными ячейками выравниваются, что может привести к потере структурной информации. Для простых таблиц данных конвертация выполняется без потерь.
Является ли конвертация из HTML в Markdown обратимой без потерь?
Нет. Markdown является подмножеством HTML, поэтому при конвертации часть информации всегда теряется. CSS-классы, встроенные стили, атрибуты данных, элементы форм и семантические теги вроде <article> или <section> не имеют эквивалентов в Markdown. Текстовое содержимое и базовая структура (заголовки, списки, ссылки, выделение) сохраняются точно. Для большинства рабочих процессов документирования и миграции контента именно эти элементы имеют значение.
В чём разница между конвертацией HTML в Markdown и HTML в простой текст?
HTML в простой текст удаляет всё форматирование и даёт исходный текст без структуры. HTML в Markdown сохраняет структуру документа: заголовки остаются заголовками, ссылки сохраняют URL, списки остаются списками, а выделение сохраняется. Вывод в формате Markdown можно снова отрендерить в HTML с той же логической структурой.
Можно ли конвертировать Markdown обратно в HTML?
Да. Любой Markdown-процессор (marked, markdown-it, Python-Markdown, goldmark) конвертирует Markdown в HTML. Это двустороннее преобразование — одна из причин популярности Markdown: вы пишете в читаемом формате и рендерите в HTML для веба. Двусторонний цикл не является идеально симметричным, поскольку конвертация HTML в Markdown удаляет неподдерживаемые элементы.
Как конвертер обрабатывает HTML со встроенным CSS или JavaScript?
Встроенный CSS (атрибуты style) и блоки <style> удаляются при конвертации, поскольку в Markdown нет синтаксиса для стилизации. JavaScript (теги <script> и обработчики событий вроде onclick) также удаляется. Конвертер извлекает только содержимое и структуру документа. Это делает конвертацию HTML в Markdown полезным шагом санации при импорте недоверенного HTML-контента в документацию.
Какую разновидность Markdown выбрать для проекта?
Используйте GitHub-Flavored Markdown (GFM), если контент будет отображаться на GitHub, GitLab или большинстве платформ документации. Используйте CommonMark, если вам нужна строгая совместимость со спецификацией и предсказуемый парсинг в разных рендерерах. Оригинальный Markdown актуален только для устаревших систем. GFM — самый безопасный выбор по умолчанию для большинства проектов.