Updated ·7 min read·By Muhammad Usman

HTML zu Markdown konvertieren: online & per CLI

HTML in Markdown umwandeln: Online-Konverter im Browser, was mit Tabellen, Links und Code passiert, unsauberes HTML bereinigen, plus pandoc und turndown.

Bildschirm mit farbig hervorgehobenem HTML- und SVG-Quelltext in einem Code-Editor

Um HTML in Markdown umzuwandeln, fügst du den Quelltext in einen Konverter wie den HTML-zu-Markdown-Konverter von MDTool ein und kopierst das Ergebnis. Überschriften, Links, Listen, Tabellen und Codeblöcke werden zu GitHub Flavored Markdown. Für viele Dateien auf einmal eignen sich pandoc oder ein kurzes Node-Skript mit turndown.

Der typische Anlass ist eine Migration: Alte Blogartikel aus WordPress sollen in einen Static-Site-Generator, Confluence-Seiten in ein Git-Repository oder eine Dokumentation in Obsidian. In allen Fällen willst du am Ende Text, den man lesen, versionieren und diffen kann, statt verschachtelter div-Container mit Inline-Styles.

Wie funktioniert der Online-Konverter?

Die Oberfläche von MDTool ist auf Englisch, besteht aber nur aus zwei Feldern und einer Handvoll Buttons. Du findest dich in Sekunden zurecht.

  1. Öffne den HTML-zu-Markdown-Konverter.
  2. Füge dein HTML in das linke Feld HTML Input ein. Alternativ lädst du über Upload .html eine .html- oder .htm-Datei oder ziehst sie per Drag & Drop in das Feld.
  3. Rechts erscheint das Markdown sofort, ohne extra Klick.
  4. Übernimm das Ergebnis mit Copy in die Zwischenablage oder speichere es mit Download .md als Datei.

Die Umwandlung läuft vollständig im Browser. Unter der Haube arbeiten die Open-Source-Bibliothek turndown und ihr GFM-Plugin, es wird nichts auf einen Server hochgeladen. Das ist praktisch, wenn du interne Wiki-Seiten oder Inhalte mit Kundendaten konvertierst, die nicht bei einem fremden Dienst landen sollen. Der Konverter ist kostenlos, ohne Anmeldung und ohne Wasserzeichen.

Woher bekommst du das HTML? Bei einer einzelnen Webseite reicht im Browser ein Rechtsklick und Seitenquelltext anzeigen. Meist ist es aber sinnvoller, nur den eigentlichen Artikel zu kopieren: Öffne mit F12 die Entwicklertools, markiere das article- oder main-Element und kopiere dessen äußeres HTML. So bleiben Navigation, Cookie-Banner und Footer draußen.

Was wird umgewandelt und was nicht?

Die meisten Elemente haben eine direkte Entsprechung in Markdown. Interessant sind die Ausnahmen, denn genau dort entsteht später Nacharbeit.

HTMLErgebnis in MarkdownHinweis
h1 bis h6# bis ######ATX-Stil, also mit Rauten
strong, b**fett**
em, i_kursiv_Unterstrich statt Sternchen
a href[Text](URL)Links bleiben inline
ul, ol- bzw. 1.Verschachtelung bleibt erhalten
pre mit code class="language-js"Codeblock mit ```jsDie Sprache bleibt erhalten
table mit thead oder th-KopfzeileGFM-Tabelle mit Pipes
table ohne Kopfzeilebleibt als HTML stehensiehe unten
del, s~Text~GFM-Durchstreichung
brzwei Leerzeichen und Zeilenumbruch
img![Alt-Text](Pfad)Bild wird nur verlinkt, nicht kopiert
span, div, style-Attributeentfallen, Text bleibt
script, styleInhalt bleibt als Text stehenvorher entfernen

Zwei Zeilen dieser Tabelle verdienen eine Erklärung.

Tabellen ohne Kopfzeile. Eine Markdown-Tabelle braucht laut GitHub-Dokumentation zu Tabellen immer eine Kopfzeile, gefolgt von einer Trennzeile aus Bindestrichen. Wenn die erste Zeile deiner HTML-Tabelle aus normalen td-Zellen besteht, kann turndown nicht wissen, was die Spaltenüberschriften sind, und lässt die Tabelle bewusst als HTML stehen. Die Lösung: Mach aus den Zellen der ersten Zeile th-Zellen oder setze die Zeile in ein thead. Danach entsteht eine saubere Pipe-Tabelle. Mehr zur Tabellensyntax findest du im Spickzettel zu Markdown-Tabellen.

Skripte und Styles. Der Inhalt von script- und style-Blöcken ist für turndown einfach Text und landet deshalb mitten im Markdown. Lösche diese Blöcke vor dem Einfügen, oder kopiere wie oben beschrieben nur den Artikelbereich.

Wie bereinigst du unsauberes HTML vorher?

HTML aus WYSIWYG-Editoren, aus Word oder aus alten CMS-Exporten ist selten sauber. Typisch sind leere span-Elemente, Inline-Styles in jedem Absatz,   statt Leerzeichen und Absätze innerhalb von Tabellenzellen. Ein Beispiel:

<div class="wp-block-group" style="margin-top:20px">
  <p style="font-family:Arial"><span style="color:#333"><b>Hinweis:</b></span>&nbsp;Bitte <a href="/kontakt">Kontakt</a> aufnehmen.</p>
  <script>trackPageview();</script>
</div>

Ohne das script-Element wird daraus:

**Hinweis:** Bitte [Kontakt](/kontakt) aufnehmen.

Die Styles und Wrapper verschwinden von selbst. Absätze in Tabellenzellen, die Word und Google Docs gern erzeugen, behandelt MDTool gesondert, damit keine Leerzeilen die Tabelle zerreißen. Für den Rest hat sich diese Reihenfolge bewährt:

  1. Nur den Inhalt kopieren: Header, Navigation, Sidebar und Footer weglassen.
  2. Skripte und Styles löschen: alle script- und style-Blöcke entfernen.
  3. Tabellenköpfe prüfen: die erste Zeile jeder Tabelle muss aus th-Zellen bestehen.
  4. Relative Links prüfen: /kontakt funktioniert nur auf der alten Domain. Ersetze relative Pfade bei Bedarf durch absolute URLs.
  5. Bilder separat sichern: Der Konverter übernimmt nur den Pfad. Die Bilddateien musst du selbst herunterladen und neben die .md-Datei legen.

Eine ausführlichere Anleitung für besonders verbautes HTML gibt es im englischen Artikel Clean HTML to Markdown, und für ganze Websites den Leitfaden zur CMS-Migration.

Welche Alternativen gibt es für die Kommandozeile?

Der Online-Konverter ist ideal für einzelne Seiten. Sobald du Dutzende Dateien umwandeln oder den Schritt in ein Build-Skript einbauen willst, ist die Kommandozeile schneller.

pandoc

pandoc liest HTML und schreibt GitHub Flavored Markdown mit dem Ausgabeformat gfm:

pandoc seite.html -f html -t gfm --wrap=none -o seite.md

--wrap=none verhindert, dass pandoc lange Absätze nach 72 Zeichen umbricht, was sonst jeden Diff unübersichtlich macht. Pandoc schreibt Elemente, die sich nicht in Markdown ausdrücken lassen, standardmäßig als Roh-HTML ins Ergebnis. Mit -t gfm-raw_html unterdrückst du das. Was sich nicht in Markdown ausdrücken lässt, fällt dann allerdings ersatzlos weg.

Für einen ganzen Ordner reicht eine Schleife in der Bash:

for f in *.html; do
  pandoc "$f" -f html -t gfm --wrap=none -o "${f%.html}.md"
done

turndown mit Node.js

turndown ist dieselbe Bibliothek, die auch im Browser-Tool steckt. Ein offizielles CLI gibt es nicht, aber ein Skript mit wenigen Zeilen erledigt dieselbe Arbeit und lässt sich anpassen:

npm install turndown turndown-plugin-gfm
// konvertieren.mjs
import { readFileSync, writeFileSync } from 'node:fs';
import TurndownService from 'turndown';
import { gfm } from 'turndown-plugin-gfm';

const td = new TurndownService({ headingStyle: 'atx', codeBlockStyle: 'fenced', bulletListMarker: '-' });
td.use(gfm);
td.remove(['script', 'style', 'nav']);

const html = readFileSync(process.argv[2], 'utf8');
writeFileSync(process.argv[3], td.turndown(html));

Aufruf: node konvertieren.mjs seite.html seite.md. Der Vorteil gegenüber dem Online-Tool ist td.remove(): Damit verschwinden Skripte, Styles und Navigation samt Inhalt automatisch.

Welcher Weg passt zu dir?

KriteriumMDTool onlinepandocturndown-Skript
Installationkeinepandoc installierenNode.js und npm
Einzelne Seitesehr schnellschnellschnell
Viele Dateieneine nach der anderenSchleifeSchleife
Daten bleiben lokalja, im Browserjaja
Elemente gezielt entfernenvorher von Handeingeschränktmit remove()

Was machst du mit dem fertigen Markdown?

Meist geht es direkt ins Repository oder in den Static-Site-Generator. Wenn du aus dem Ergebnis ein Dokument zum Weitergeben brauchst, kannst du das Markdown im Markdown-zu-PDF-Konverter einfügen und mit Syntaxhervorhebung und sauberen Tabellen als PDF herunterladen.

Häufig gestellte Fragen

F: Ist der HTML-zu-Markdown-Konverter kostenlos?

Ja. Der Konverter von MDTool ist kostenlos, braucht keine Anmeldung und setzt kein Wasserzeichen. Die Oberfläche ist auf Englisch, die Bedienung beschränkt sich aber auf Einfügen und Kopieren.

F: Wird mein HTML auf einen Server hochgeladen?

Nein. Die Umwandlung passiert vollständig in deinem Browser mit turndown. Der Quelltext verlässt deinen Rechner nicht.

F: Warum steht meine Tabelle nach der Umwandlung noch als HTML da?

Weil die Tabelle keine Kopfzeile hat. Markdown-Tabellen brauchen immer eine Überschriftenzeile. Ändere die Zellen der ersten Zeile von td zu th oder setze sie in ein thead, dann entsteht eine Pipe-Tabelle.

F: Kann ich eine komplette Website in Markdown umwandeln?

Mit dem Online-Tool nur Seite für Seite. Für ganze Websites ist pandoc in einer Schleife oder ein turndown-Skript besser geeignet. Plane zusätzlich Zeit ein, um Bilder herunterzuladen und relative Links anzupassen.

F: Bleiben Bilder bei der Umwandlung erhalten?

Nur als Verweis. Aus einem img-Element wird ![Alt-Text](Pfad). Die Bilddatei selbst musst du separat speichern und den Pfad bei Bedarf anpassen.

Try it yourself, free

HTML einfügen, sauberes Markdown kopieren. Kostenlos, ohne Anmeldung, und dein Quelltext verlässt den Browser nicht.

HTML-zu-Markdown-Konverter öffnen →