HTML zu Markdown Konverter (GFM)

HTML zu Markdown Konverter (GFM)

HTML zuverlässig in GitHub Flavored Markdown (GFM) mit Tabellen und Code-Blöcken konvertieren. Inline-Styles bereinigen und saubere MD-Dateien exportieren.

Schnellvorlagen
DOM-Parsing ➔ Markdown-Generierung0 nodes
DOM Tree0 nodesSanitizer-0 debrisGFM RulesGFMSerializer-0% bytes
HTML-QuellcodeHTML5
Markdown-Dialekt:

Keine Ausgabe generiert

Zeichen0
Wörter0
Zeilen0
Reduktionsrate0%
Bereinigungsgrad100%
Lesezeit1m
Technische Referenz & Architektur-Leitfaden

HTML zu Markdown Konverter (GFM) — Referenzhandbuch

HTML sekundenschnell in sauberes Markdown (GFM) mit Tabellen, Code-Blöcken und Bildern umwandeln. Bereinigt Web-Tags und kopiert reines MD lokal im Browser.

HTML zu Markdown Konverter (GFM) — Referenzhandbuch — Client-seitige In-Memory-Architektur und Datenfluss
HTML zu Markdown Konverter (GFM) — Referenzhandbuch — Client-seitige In-Memory-Architektur und Datenfluss

Wichtige Parameter & Einstellungen

Überschriften-Syntax (ATX vs. Setext)ATX (#) | Setext (=== / ---)

Steuert die AST-Serialisierung von Überschriften gemäß CommonMark-Spezifikation §4.2. ATX-Hashes (# H1 bis ###### H6) garantieren deterministische Token-Grenzen ohne das Risiko unbeabsichtigter Absatzverschmelzungen oder Setext-Unterstreichungskollisionen.

Standard: ATX (#)
GFM-Pipe-Tabellen Ausrichtungs-TrennzeichenDoppelpunkt-Begrenzer (:--- | :---: | ---:)

Definiert die Spaltenausrichtungs-Begrenzer in Zeile 2 von GitHub Flavored Markdown (GFM §4.10) Tabellen. Mappt Inline-CSS (text-align) sowie HTML-align-Attribute präzise auf Doppelpunkt-Anker (:--- linksbündig, :---: zentriert, ---: rechtsbündig).

Standard: :---
Code-Block-Spracherkennung (Fenced Blocks)Triple-Backticks (```lang) | 4-Leerzeichen-Einzug

Extrahiert Syntax-Highlighting-Klassentoken (z. B. class="language-typescript", class="highlight-source-python") aus verschachtelten <pre><code>-DOM-Knoten und hängt CommonMark §4.5 Info-Strings direkt an die öffnenden Backtick-Zäune an.

Standard: Fenced (```lang)
HTML-Bereinigung & RauschfilterungDOM-Walker Whitelist-Filter

Entfernt aktive Skripte und inhaltsfremde DOM-Teilbäume (<script>, <style>, <iframe>, <object>, <nav>, <noscript>) während des O(n)-Tiefendurchlaufs. Nicht-semantische <div>- und <span>-Wrapper werden bereinigt, während der innere Text erhalten bleibt.

Standard: Aktiviert (Strikt)
HTML-Entity- & Zeichen-DecodierungUTF-8-Entity-Normalisierung

Dekodiert benannte (&copy;, &amp;), dezimale (&#160;) und hexadezimale (&#x2014;) HTML-Entities in standardmäßige UTF-8-Zeichen. Aktive CommonMark-Steuerzeichen (\*, \_, \`, \#, \|) werden automatisch maskiert, um Parsing-Kollisionen zu verhindern.

Standard: Auto-Decodierung
Link- & Bild-Referenzsyntax (Inline vs. Referenz)Inline [Text](URL) | Referenz [Text][ID]

Steuert die Serialisierung von Anchor- (<a>) und Bildknoten (<img>). Die Inline-Syntax platziert Ziel-URLs direkt neben dem Ankertext; die Referenz-Syntax generiert konsolidierte Fußnoten-Dictionaries am Dokumentende zur Optimierung der Token-Dichte.

Standard: Inline

Profi-Tipps & Best Practices

Zeilenumbrüche in Tabellenzellen normalisieren

Standard-GFM-Pipe-Tabellen erfordern, dass jede Tabellenzeile auf einer einzigen physischen Zeile verbleibt; unmaskierte Newline-Zeichen (\n oder \r\n) zerstören das Tabellen-Parsing sofort. Ersetzen Sie <br> und Block-Elemente (<p>, <div>) innerhalb von <td>-Zellen durch Inline-<br />-Tags oder Leerzeichen, um das Tabellenlayout zu wahren.

Pipe-Trennzeichen in Inline-Code innerhalb von Tabellen maskieren

GFM-Tabellenparser trennen Spalten anhand von Pipe-Zeichen (|) noch bevor Inline-Backtick-Abschnitte ausgewertet werden. Enthält eine Zelle Shell-Befehle oder bitweise Operatoren (z. B. `cat file | grep key`), maskieren Sie die Pipe als \| oder kapseln Sie den Code in doppelte Backticks mit Leerzeichen (`` `cat | grep` ``), um ein versehentliches Aufspalten der Spalten zu verhindern.

Vier-Leerzeichen-Einzug für verschachtelte Listenblöcke erzwingen

CommonMark §5.2 schreibt vor, dass Unterblöcke innerhalb von Listenelementen (Unterlisten, Blockquotes oder Fenced Code) bündig zum ersten Nicht-Leerzeichen nach dem Listenmarker eingerückt werden (in der Regel 4 Leerzeichen oder 1 Tab). Ein 2-Leerzeichen-Einzug führt bei strikten Parsern zu einem vorzeitigen Abbruch der Liste.

Syntax-Highlighting-Klassen vor dem DOM-Stripping auslesen

Syntax-Highlighter (wie Prism.js oder Highlight.js) hinterlegen Sprachbezeichner oft im übergeordneten <pre class="brush: js"> oder untergeordneten <code class="language-python">. Stellen Sie sicher, dass die Sprach-Token-Extraktion beide Knoten per Regex ((?:lang|language)-([a-zA-Z0-9_-]+)) scannt, bevor nicht-semantische Attribute verworfen werden.

Häufige Fehlerquellen & Fehlerbehebung

⚠️HTML-Tabellen werden als unzusammenhängender Rohtext oder fragmentierte Pipes statt als GFM-Tabelle ausgegeben

GFM §4.10 verlangt eine strukturelle Trennzeile unmittelbar unterhalb der Kopfzeile (| :--- | ---: |) mit exakt übereinstimmender Spaltenanzahl. Prüfen Sie, ob die Quelltabelle ein semantisches <thead> oder eine eindeutige erste <tr> mit <th>-Zellen enthält, und stellen Sie sicher, dass zellinterne Zeilenumbrüche zu <br /> normalisiert werden.

⚠️Formatierte Code-Blöcke verlieren Einrückungen und fallen zu einfachen Absätzen zusammen

Tritt auf, wenn das Quell-HTML auf gestylte <div>- oder <p>-Tags mit CSS white-space: pre setzt, statt semantische <pre><code>-Tags zu nutzen. Transformieren Sie Container vor dem AST-Durchlauf in semantische <pre>-Elemente oder aktivieren Sie eine CSS-bewusste Whitespace-Extraktion, um Zeilenumbrüche und Einrückungen beizubehalten.

⚠️Verbleibende rohe HTML-Tags (<span>, <div>, <font>) überladen die Markdown-Ausgabe

DOM-Konverter behalten unbekannte Elemente oder Tags mit komplexen Inline-Stilen oft als rohes HTML bei. Aktivieren Sie im Parser das strikte Entpacken nicht-semantischer Wrapper (Unwrapping), um Container-Tags rekursiv zu entfernen, während alle Textknoten und gültigen Inline-Elemente (<em>, <strong>, <a>) intakt bleiben.

Häufig gestellte Fragen (FAQ)

Wie konvertiert man HTML-Tabellen in Markdown, ohne die Spaltenausrichtung zu zerstören?▼

Bei der Konvertierung von HTML-Tabellen in GitHub Flavored Markdown (GFM) müssen <th>-Zellen in Spaltenköpfe überführt, eine Trennzeile mit Ausrichtungsdoppelpunkten (| :--- | :---: | ---: |) eingefügt und alle Zeilenumbrüche innerhalb von Zellen in <br />-Tags umgewandelt werden. Standardmäßige GFM-Pipe-Tabellen verlangen zwingend, dass jede Zeile genau eine ununterbrochene physische Textzeile belegt; unbehandelte Zeilenumbrüche (\r\n) in <td>-Elementen zerreißen die Tabellenstruktur sofort in isolierte Textfragmente. Inline-Ausrichtungsattribute (align="left|center|right") oder CSS-Eigenschaften (style="text-align: *") müssen geparst und in die Doppelpunkt-Marker der zweiten Zeile übertragen werden.

Worin liegt der Unterschied zwischen CommonMark und GitHub Flavored Markdown (GFM)?▼

CommonMark ist die formale Basisspezifikation, die die Markdown-Kernsyntax (RFC 7764) standardisiert. GitHub Flavored Markdown (GFM) hingegen ist eine strikte Obermenge (Superset), die native Spezifikationen für Pipe-Tabellen (§4.10), Aufgabenlisten (§5.3), Durchstreichungen (§6.5), automatische Linkerkennung (§6.9) und sprachspezifische Fenced-Code-Blöcke ergänzt. Während reines CommonMark Pipe-Zeichen (|) als einfachen Text interpretiert und Tabellenstrukturen in unformatierte Absätze umwandelt, parst GFM tabellarische Daten in strukturierte Matrizen, wie sie in modernen Repositories, Dokumentations-Engines und Wikis Standard sind.

Wie bleibt das Syntax-Highlighting bei der Konvertierung von HTML-pre-code-Blöcken in Markdown erhalten?▼

Um das Syntax-Highlighting beizubehalten, müssen Sprachbezeichner aus den HTML-Klassenattributen (z. B. class="language-typescript", class="lang-python" oder class="highlight-source-sql") der <pre>- oder <code>-Tags ausgelesen und als Info-String direkt hinter die öffnenden dreifachen Backticks (```typescript) gesetzt werden. Verwendet das Quell-HTML rein span-basierte Stile ohne Klassenannotationen, prüfen moderne AST-Parser übergeordnete Datenattribute wie data-language oder data-lang, um konforme Fenced-Code-Blöcke nach CommonMark §4.5 zu rekonstruieren.

Warum erzeugt HTML mit verschachtelten div- und span-Tags unsaubere Markdown-Ergebnisse?▼

Verschachtelte <div>- und <span>-Elemente verursachen unsauberes Markdown, da es sich um rein visuelle Container ohne syntaktisches Äquivalent in CommonMark handelt. Parser neigen dazu, diese entweder als rohe HTML-Tags durchzureichen oder überflüssige Zeilenumbrüche zu generieren. Fehlt der Konvertierungs-Engine ein semantisches AST-Unwrapping, führen solche Tags zu redundanten Absatzwechseln, doppelten Abständen und verwaisten Steuerzeichen. Eine rekursive DOM-Bereinigung in O(n) flacht die Containertiefe ab und bewahrt gleichzeitig den eigentlichen Textinhalt.

Wie reduziert die Konvertierung von HTML in Markdown den Token-Verbrauch bei LLM-Prompts?▼

Die Konvertierung von gecrawltem Web-HTML in bereinigtes Markdown senkt den Token-Verbrauch in LLM-Prompts typischerweise um 55 % bis 75 %. Dabei werden überflüssige Boilerplate-DOM-Knoten (<nav>, <header>, <footer>, <script>, <style>) und aufgeblähte CSS-Klassennamen eliminiert und verschachtelte Tags durch kompakte Markdown-Syntax ersetzt. Diese hohe Informationsdichte schont das Kontextfenster, verringert die Inferenz-Latenz und steigert die Vektoreinbettungsqualität bei RAG-Pipelines (Retrieval-Augmented Generation) durch die Eliminierung von syntaktischem Rauschen signifikant.

Verwandte Tools & Hilfsprogramme

Alle Tools →