ToolDeck

HTML to Markdown

Конвертируйте HTML в формат Markdown

Попробовать пример

HTML-ввод

Вывод Markdown

Работает локально · Безопасно вставлять секреты
Результат в формате Markdown появится здесь…

Что такое конвертация HTML в Markdown?

Конвертация 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 separationDouble 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">![alt](url)Image with alt text
<ul><li>- itemUnordered list with dash or asterisk
<ol><li>1. itemOrdered list, numbers restart per block
<blockquote>> textBlock 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."
Go (html-to-markdown)
package main

import (
	"fmt"
	md "github.com/JohannesKaufmann/html-to-markdown"
)

func main() {
	converter := md.NewConverter("", true, nil)
	html := `<h3>Go Example</h3><p>Code: <code>fmt.Println()</code></p>`
	markdown, _ := converter.ConvertString(html)
	fmt.Println(markdown)
	// → "### Go Example\n\nCode: `fmt.Println()`"
}
CLI (Pandoc)
# 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 — самый безопасный выбор по умолчанию для большинства проектов.