Конвертер HTML в Markdown - Чистый Markdown из любой страницы
Преобразовать HTML в Markdown
Скрипты, стили и встроенные медиа отбрасываются; неизвестные теги сохраняют текст. Таблицы становятся таблицами GFM.
Превращение HTML в Markdown
Перенести запись блога в README, страницу документации в вики или веб-статью в заметки — значит избавиться от HTML, не потеряв структуру. Этот конвертер разбирает разметку так же, как браузер, и записывает эквивалентный Markdown — заголовки остаются заголовками, вложенные списки вложенными, таблицы таблицами — а скрипты, стили и трекинговые пиксели исчезают.
Шаги
- 1 Вставьте HTML — целую страницу или фрагмент — в верхнее поле. В большинстве браузеров его можно скопировать через правый клик и «Просмотр кода страницы».
- 2 Прочитайте Markdown ниже; он обновляется по мере ввода. Вложенные списки, блоки кода с языком и таблицы с выравниванием сохраняются.
- 3 Скопируйте результат или скачайте его как файл .md.
Что во что превращается
Заголовки h1–h6 становятся заголовками с решётками; p — абзацем, br — жёстким переносом, hr — линией. strong и b становятся двойными звёздочками, em и i — одиночными, del и s — двойными тильдами; code — обратными кавычками, pre — огороженным блоком, сохраняющим класс языка как метку. Ссылки становятся [текст](url), изображения — ; ul и ol — списками с дефисами и номерами с вложенностью в два пробела; blockquote — строками со знаком «больше»; table — таблицей GFM с выравниванием из атрибутов align или стилей text-align.
Почему он работает с DOM, а не с текстом
Регулярные выражения не справляются с HTML надёжно: теги вкладываются, атрибуты содержат угловые скобки внутри строк, а реальные страницы редко бывают корректными. Конвертер передаёт HTML собственному парсеру браузера, который исправляет незакрытые и неправильно вложенные теги точно так же, как при отображении, а затем обходит полученное дерево. Поэтому ссылка внутри жирного внутри пункта списка выходит правильно.
Что отбрасывается, а что остаётся
script, style, head, noscript, template, iframe, object, embed, svg, canvas, video и audio удаляются вместе с содержимым — у них нет эквивалента в Markdown, и большинство из них шум. Всё остальное нераспознанное сохраняет текст: пользовательский элемент, span или div считаются контейнером, их потомки преобразуются. Поэтому встроенное форматирование внутри неизвестных тегов выживает.
Экранирование и чистый вывод
Символы, меняющие смысл в Markdown — звёздочки, подчёркивания, обратные кавычки, обратные слеши, а также решётка или дефис в начале строки — экранируются в тексте, чтобы обратное преобразование Markdown в HTML давало тот же результат. Пробелы сворачиваются так, как это сделал бы браузер, кроме pre. Пустые строки между блоками сводятся к одной.