ToolDeck

Konwerter HTML do Markdown

Konwertuj HTML do formatu Markdown

Wypróbuj przykład

Wejście HTML

Wyjście Markdown

Działa lokalnie · Bezpieczne do wklejania sekretów
Wyjście Markdown pojawi się tutaj…

Czym jest konwersja HTML do Markdown?

Konwersja HTML do Markdown przekształca znaczniki HTML w Markdown — lekką składnię formatowania zwykłego tekstu stworzoną przez Johna Grubera w 2004 roku. Markdown został zaprojektowany tak, by był czytelny bez renderowania. Tam gdzie HTML wymaga otwierających i zamykających tagów, takich jak <strong> czy <a href="">, Markdown używa skrótowych znaków: **pogrubienie**, [linki](url) i # nagłówki. Konwersja HTML do Markdown tworzy pliki łatwiejsze do odczytu, edycji i kontroli wersji niż surowe HTML.

Proces konwersji odwzorowuje elementy HTML na ich odpowiedniki w Markdown. <h2> staje się ##, <ul><li> staje się - element, a tag <a> staje się [tekst](url). Niektóre elementy HTML nie mają bezpośredniego odpowiednika w Markdown, np. <div>, <span> czy własne atrybuty danych. Konwertery zazwyczaj usuwają te tagi lub przekazują je jako surowe HTML, zależnie od konfiguracji.

Markdown stał się standardowym formatem pisania dokumentacji deweloperskiej (GitHub, GitLab, Bitbucket), generatorów stron statycznych (Hugo, Jekyll, Astro), aplikacji do notatek (Obsidian, Notion) i blogów technicznych. Konwersja istniejącej zawartości HTML do Markdown to częsty krok przy migracji stron, imporcie treści z CMS lub archiwizowaniu stron w przenośnym formacie. W odróżnieniu od HTML, pliki Markdown generują czytelne diff-y w systemach kontroli wersji, co czyni przegląd zmian dokumentacji praktycznym zadaniem.

Dlaczego warto używać konwertera HTML do Markdown?

Ręczne przepisywanie HTML jako Markdown jest powolne i podatne na błędy, szczególnie w przypadku stron z zagnieżdżonymi listami, tabelami lub dziesiątkami linków. Zautomatyzowany konwerter obsługuje całe strukturalne odwzorowanie natychmiastowo i spójnie.

Błyskawiczna konwersja w przeglądarce
Wklej HTML i uzyskaj wynik w Markdown w ułamku sekundy. Żadnych zapytań do serwera, żadnego czekania w kolejce. Konwersja odbywa się całkowicie w przeglądarce przy użyciu JavaScript.
🔒
Twoje dane pozostają prywatne
Twój HTML nigdy nie opuszcza Twojego urządzenia. Całe przetwarzanie odbywa się po stronie klienta, więc nie ma przesyłania, logowania ani dostępu stron trzecich do Twojej zawartości.
📝
Zachowanie struktury dokumentu
Nagłówki, listy, linki, obrazy, bloki kodu i tabele są odwzorowywane na właściwe odpowiedniki Markdown. Zagnieżdżone struktury i formatowanie inline są obsługiwane rekurencyjnie.
🔀
Bez konta i instalacji
Otwórz narzędzie i zacznij konwertować. Nic nie trzeba instalować, żadnego klucza API do konfiguracji ani formularza rejestracji. Działa na każdym urządzeniu z nowoczesną przeglądarką.

Zastosowania konwertera HTML do Markdown

Programista frontendowy: migracja z CMS
Eksportuj wpisy blogowe lub strony z WordPressa, Drupala lub headless CMS jako HTML, a następnie konwertuj je do Markdown do użytku z generatorami stron statycznych, takimi jak Next.js, Astro lub Hugo.
Inżynier backendowy: dokumentacja API
Konwertuj automatycznie generowane dokumenty HTML API do plików Markdown, które żyją razem z kodem źródłowym. Dokumenty Markdown integrują się z renderowaniem GitHub i mogą być wersjonowane razem z opisywanym kodem.
DevOps: konwersja runbooków
Zamień strony wewnętrznego wiki (Confluence, SharePoint) eksportowane jako HTML na runbooki Markdown przechowywane w repozytorium Git obok opisywanego kodu infrastruktury.
Inżynier QA: dokumentacja przypadków testowych
Konwertuj raporty testów HTML lub ręczne plany testów z narzędzi webowych do plików Markdown, które można przeglądać w pull requestach obok weryfikowanych zmian w kodzie.
Inżynier danych: czyszczenie danych ze scrapingu
Usuń HTML boilerplate ze zescrapowanych stron i uzyskaj czysty tekst w Markdown. Operacja ta eliminuje nawigację, reklamy i znaczniki układu, zachowując treść artykułu i jego strukturę.
Student: notatki badawcze
Kopiuj treści z zasobów internetowych i konwertuj HTML do Markdown, aby zaimportować je do Obsidian, Notion lub dowolnego systemu notatek opartego na Markdown. Nagłówki, linki i formatowanie są zachowane.

Tabela odwzorowania elementów HTML na Markdown

Poniższa tabela pokazuje, jak typowe elementy HTML są odwzorowywane na odpowiedniki w Markdown. Odwzorowanie jest zgodne z konwencjami GitHub-Flavored Markdown (GFM), które rozszerzają specyfikację CommonMark o tabele, przekreślenie i listy zadań. Elementy nieuwzględnione w tabeli (takie jak <div>, <form> czy własne komponenty webowe) nie mają odpowiednika w Markdown i są usuwane lub przekazywane jako surowe HTML.

Element HTMLSkładnia MarkdownUwagi
<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)

Warianty Markdown: GFM kontra CommonMark kontra oryginalny

Nie wszystkie odmiany Markdown są takie same. Format wyjściowy ma znaczenie, ponieważ różne platformy inaczej przetwarzają Markdown. Trzy najpopularniejsze warianty to GitHub-Flavored Markdown (GFM), CommonMark i oryginalny Markdown Grubera.

GitHub-Flavored Markdown (GFM)
Najszerzej stosowany wariant. Dodaje tabele (składnia potokowa), przekreślenie (~~tekst~~), listy zadań (- [x]) i automatyczne linkowanie adresów URL. Używany przez GitHub, GitLab i większość narzędzi deweloperskich. Konwerter domyślnie generuje Markdown zgodny z GFM.
CommonMark
Ścisła specyfikacja, która rozwiązuje niejednoznaczności w oryginalnej składni Markdown. Definiuje dokładne reguły dotyczące kontynuacji list, parsowania wyróżnienia i zagnieżdżania na poziomie bloków. Używany jako baza dla GFM i wielu generatorów stron statycznych.
Oryginalny Markdown
Specyfikacja Johna Grubera z 2004 roku. Nie obsługuje tabel, ogrodzonych bloków kodu ani przekreślenia. Większość nowoczesnych narzędzi traktuje go jako podzbiór CommonMark. Rzadko stosowany dziś jako format docelowy.

Przykłady kodu

Działające przykłady w JavaScript (Turndown), Python (markdownify i html2text), Go oraz Pandoc w wierszu poleceń.

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

Często zadawane pytania

Które elementy HTML nie mogą zostać przekonwertowane do Markdown?
Markdown nie ma odpowiednika dla <div>, <span>, <form>, <input>, <iframe> ani żadnego elementu z własnymi klasami CSS i stylami. Większość konwerterów usuwa te tagi i zachowuje tylko wewnętrzny tekst. Niektóre konwertery mogą przepuszczać nieobsługiwane HTML bez zmian, co jest prawidłowe, ponieważ specyfikacja Markdown jawnie dopuszcza inline HTML. Jeśli musisz zachować te elementy, skonfiguruj konwerter tak, aby zachowywał surowe HTML zamiast je usuwać.
Jak tabele HTML są konwertowane do Markdown?
Tabele HTML są odwzorowywane na składnię tabel potokowych GFM: | Nagłówek | Nagłówek | z wierszem separatora | --- | --- |. Tabele GFM nie obsługują colspan, rowspan ani stylowania na poziomie komórek. Złożone tabele ze scalonymi komórkami są spłaszczane, co może powodować utratę informacji strukturalnych. W przypadku prostych tabel danych konwersja jest bezstratna.
Czy konwersja HTML do Markdown jest bezstratna?
Nie. Markdown jest podzbiorem HTML, więc podczas konwersji zawsze dochodzi do utraty pewnych informacji. Klasy CSS, style inline, atrybuty danych, elementy formularzy i semantyczne tagi jak <article> czy <section> nie mają odpowiednika w Markdown. Treść tekstowa i podstawowa struktura (nagłówki, listy, linki, wyróżnienie) są zachowane dokładnie. W przypadku większości przepływów pracy związanych z dokumentacją i migracją treści zachowane elementy są tymi, które mają znaczenie.
Czym różni się konwersja HTML do Markdown od konwersji HTML do zwykłego tekstu?
Konwersja HTML do zwykłego tekstu usuwa całe formatowanie i produkuje surowy tekst bez struktury. Konwersja HTML do Markdown zachowuje strukturę dokumentu: nagłówki pozostają nagłówkami, linki zachowują swoje adresy URL, listy pozostają listami, a wyróżnienie jest zachowane. Wynik w Markdown można wyrenderować z powrotem do HTML z tą samą strukturą logiczną.
Czy mogę przekonwertować Markdown z powrotem do HTML?
Tak. Każdy procesor Markdown (marked, markdown-it, Python-Markdown, goldmark) konwertuje Markdown do HTML. Ten cykl konwersji jest jednym z powodów popularności Markdown: piszesz w czytelnym formacie i renderujesz do HTML na potrzeby internetu. Cykl nie jest idealnie symetryczny, ponieważ konwersja HTML do Markdown pomija nieobsługiwane elementy.
Jak konwerter obsługuje HTML z inline CSS lub JavaScript?
Inline CSS (atrybuty style) i bloki <style> są usuwane podczas konwersji, ponieważ Markdown nie ma składni stylowania. JavaScript (tagi <script> i procedury obsługi zdarzeń, takie jak onclick) jest również usuwany. Konwerter wyodrębnia tylko treść i strukturę dokumentu. Sprawia to, że konwersja HTML do Markdown jest przydatnym krokiem sanityzacji przy imporcie niezaufanej zawartości HTML do dokumentacji.
Którego wariantu Markdown powinienem używać w swoim projekcie?
Użyj GitHub-Flavored Markdown (GFM), jeśli Twoja zawartość będzie wyświetlana na GitHub, GitLab lub większości platform dokumentacyjnych. Użyj CommonMark, jeśli potrzebujesz ścisłej zgodności ze specyfikacją i przewidywalnego parsowania w różnych renderujących. Oryginalny Markdown jest istotny tylko dla systemów legacy. GFM to najbezpieczniejszy domyślny wybór dla większości projektów.