SS Тулбокс
SS Тулбокс
Все данные обрабатываются локально

Конвертер HTML в Markdown — HTML веб-страницы или письма для README

Вставьте HTML веб-страницы, письма или экспортированного документа и получите Markdown: таблицы GFM, списки задач с чекбоксами, блоки кода с языком, вложенные списки и цитаты. Инлайн-стили и классы отбрасываются, URL изображений сохраняются, script и style удаляются, грязный HTML исправляется, и ничего не загружается и не отправляется.

Что эта конвертация HTML→Markdown сохраняет — и что отбрасывает

  1. Таблицы GFM, списки задач и языки кода сохраняются

    <table> становится таблицей с вертикальными чертами, чекбоксы внутри <li> — - [x] / - [ ], а <code class="language-js"> сохраняет язык как блок ```js. Чекбокс вне элемента списка даёт только экранированный текст \[x].

  2. Стили и классы отбрасываются, URL изображений сохраняются

    style, class, id и другие атрибуты оформления не переносятся, остаются только структура и семантика. <img> становится ![alt](src "title") с исходным удалённым URL; ничего не скачивается и не перехостится.

  3. Script, style и встраиваемые объекты удаляются

    <script> и <style> исчезают вместе с содержимым, <iframe> превращается в пустую ссылку [](), а <video> отбрасывается. HTML-комментарии выживают как <!-- --> в Markdown.

  4. Вложенные списки и цитаты сохраняются

    Вложенные <ul>/<ol> сохраняют уровень с отступом в два пробела, вложенные <blockquote> становятся > >, а отдельный шаг удаляет <p> внутри <li>, чтобы не появлялись пустые строки.

  5. Грязный HTML работает, всё остаётся локально

    parse5 автоматически исправляет незакрытые теги, поэтому фрагмент или целый документ <html> можно вставить без подготовки; элементы head вроде <title> игнорируются. Нет доступа к URL, загрузки и сервера — результат появляется в read-only поле для копирования.

Вопросы о конвертации HTML в Markdown

Какая библиотека конвертации используется?

Конвейер unified 11: rehype-parse 9 (parse5) разбирает HTML, небольшой собственный visitor удаляет <p> внутри <li>, rehype-remark 10 (hast-util-to-mdast) строит дерево Markdown, а remark-stringify 11 с remark-gfm 4 сериализует его.

Восстанавливаются ли таблицы, списки задач и языки кода?

Да для таблиц (таблицы с разделителем заголовка), списков задач (чекбоксы в <li> становятся - [x] / - [ ]) и языка кода (class="language-js" становится блоком ```js). Чекбокс вне элемента списка выходит только экранированным текстом \[x].

Что происходит с инлайн-стилями, классами и изображениями?

style, class и другие атрибуты оформления отбрасываются; остаются только структура и семантика. Изображения сохраняют исходный URL как ![alt](src "title"), без скачивания и перехостинга, поэтому ссылка с авторизацией позже не откроется.

Удаляются ли script, style и iframe?

<script> и <style> удаляются вместе с содержимым. <iframe> становится пустой ссылкой [](), <video> исчезает. HTML-комментарии не удаляются — остаются как <!-- --> в Markdown, что в README может быть нежелательно.

Обрабатываются ли вложенные списки и цитаты?

Да. Вложенные списки сохраняют уровень двумя пробелами, вложенные цитаты становятся > >, а теги <p> внутри элементов списка удаляются собственным плагином, чтобы не было пустых строк.

Нужно ли сначала очищать HTML?

Нет. parse5 исправляет незакрытые теги и разрозненные фрагменты, принимает и фрагмент, и полный документ <html>; элементы head вроде <title> игнорируются. Вывод может нормализоваться, поэтому перед коммитом прочитайте его.

Может ли он получить URL, и отправляется ли что-то?

Ни доступа к URL, ни загрузки. Страница работает полностью в браузере; вставьте HTML (или используйте сочетание вставки, оно читает text/html из буфера) и читайте Markdown в read-only поле. При вставке обычного текста используется text/plain.

Связанные инструменты
SponsorMindElixir