ToolDeck

HTML to Markdown

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

Спробувати приклад

HTML Input

Markdown Output

Працює локально · Безпечно вставляти секрети
Результат у Markdown з'явиться тут…

Що таке конвертація HTML у Markdown?

Конвертація HTML у Markdown перетворює HTML-розмітку на Markdown — легку синтаксичну систему форматування простого тексту, створену Джоном Грубером у 2004 році. Markdown був розроблений так, щоб бути зрозумілим без рендерингу. Там, де HTML потребує відкривальних і закривальних тегів на кшталт <strong> та <a href="">, Markdown використовує скорочені символи: **жирний**, [посилання](url) та # заголовки. Конвертація HTML у Markdown дає файли, які легше читати, редагувати та керувати версіями, ніж сирий HTML.

Процес конвертації відображає HTML-елементи на їхні еквіваленти в Markdown. Тег <h2> стає ##, <ul><li> стає - елемент, а тег <a> — [текст](url). Деякі HTML-елементи не мають прямого еквівалента в Markdown, наприклад <div>, <span> або власні атрибути даних. Конвертери зазвичай видаляють ці теги або передають їх як сирий HTML — залежно від налаштувань.

Markdown став стандартним форматом для документації розробників (GitHub, GitLab, Bitbucket), генераторів статичних сайтів (Hugo, Jekyll, Astro), застосунків для нотаток (Obsidian, Notion) та технічних блогів. Конвертація наявного HTML-вмісту в Markdown — поширений крок під час міграції вебсайтів, імпорту контенту з CMS або архівування вебсторінок у портативному форматі. На відміну від HTML, файли Markdown дають чіткі diff-и в системі контролю версій, що робить рецензування документації в pull request-ах практичним.

Навіщо використовувати конвертер 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-ів
Перетворюйте сторінки внутрішніх вікі (Confluence, SharePoint), експортовані у вигляді HTML, на Markdown-runbook-и, що зберігаються у вашому Git-репозиторії поряд з інфраструктурним кодом, який вони описують.
QA-інженер: документація тестових сценаріїв
Конвертуйте HTML-звіти про тестування або плани ручного тестування з вебінструментів у файли Markdown, які можна переглядати в pull request-ах разом із змінами коду, що вони перевіряють.
Data-інженер: очищення даних вебскрейпінгу
Видаляйте 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 vs CommonMark vs оригінальний

Не весь 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 є найбезпечнішим вибором за замовчуванням для більшості проєктів.