Skip to main content

Markdown zu HTML

Markdown in HTML umwandeln mit Live-Vorschau.

Geprüft von · Zuletzt geprüft

So verwendest du den Markdown-zu-HTML-Konverter

  1. Füge Markdown ein oder tippe es in den Eingabebereich. Eine README, ein Blog-Entwurf, ein Notion-Export, eine GitHub-Wiki-Seite oder ein anderer CommonMark-kompatibler Text funktioniert.
  2. Wechsle zwischen Tabs: HTML-Code zeigt das rohe generierte Markup; Vorschau zeigt, wie dieses Markup im Browser gerendert wird.
  3. Klicke auf "HTML kopieren", um das generierte Markup in ein CMS, einen E-Mail-Template-Builder oder direkt in eine HTML-Datei einzufügen.
  4. Iteriere live - das Tippen im Eingabebereich aktualisiert beide Ansichten bei jedem Tastendruck, sodass du genau siehst, wie dein Markdown auf HTML abgebildet wird.

Unter der Haube

Der Konverter implementiert den häufig genutzten Kern von CommonMark: Überschriften, Betonung, Listen, Links, Bilder, Code-Blöcke, Blockzitate und horizontale Linien. Er arbeitet zeilenweise für Konstrukte auf Block-Ebene (Überschriften, Listenpunkte, Zäune) und leitet dann den gesammelten Absatzinhalt durch einen Inline-Parser, der Betonung, Backtick-Spans, Links und Bilder verarbeitet. Diese Zwei-Pass-Architektur entspricht dem Aufbau jeder ernsthaften Markdown-Implementierung (cmark, markdown-it, pulldown-cmark).

Zur Sicherheit maskiert der Konverter Benutzer-HTML am Eingabepunkt, wenn es ein <script> oder ein anderes gefährliches Tag bilden könnte, anstatt rohes HTML vollständig durchzuleiten. Das Ergebnis ist dieselbe Ausgabe, die du von einem vernünftigen Standard-CommonMark-Renderer erhalten würdest: semantische HTML5-Elemente, keine Inline-Styles, keine Klassennamen. Füge Styling hinzu, indem du die Ausgabe in ein bestehendes Design-System einbettest - der Markdown-zu-HTML-Schritt ist absichtlich style-agnostisch. Neuere Patches schützen auch vor fehlerhafter Eingabe wie unbalancierten Bild-URLs, die zuvor zu Endlosschleifen führten.

Gute Anwendungsfälle

  • Eine E-Mail in Markdown schreiben und in HTML konvertieren für eine Mailchimp- oder Brevo-Kampagne, die benutzerdefiniertes HTML akzeptiert.
  • Eine Seite in Markdown im Editor entwerfen und HTML in ein CMS einfügen, das Markdown nicht direkt unterstützt.
  • Eine Vorschau einer README-Änderung erstellen, bevor du den Commit pushst, besonders für GitHub-spezifische Funktionen.
  • Den HTML-Teil einer Inhaltsdatei für einen Static-Site-Generator generieren, der sein eigenes Markdown-Rendering durchführt, du aber die Ausgabe vergleichen möchtest.
  • Das innere HTML für einen Rich-Text-Editor erstellen, der HTML als Serialisierungsformat akzeptiert.
  • Markdown-Syntax lehren, indem Schüler die Quell-zu-HTML-Zuordnung in Echtzeit sehen.

Worauf du achten solltest

  • GFM-Erweiterungen. Aufgabenlisten - [ ], Tabellen mit Pipe-Syntax und Durchstreichen mit ~~text~~ sind GitHub Flavored Markdown-Erweiterungen. Der Kernkonverter unterstützt die gebräuchlichsten; obskure Erweiterungen werden möglicherweise nicht gerendert.
  • HTML innerhalb von Markdown. CommonMark erlaubt rohe HTML-Blöcke. Diese werden durch den Konverter durchgeleitet, was bedeutet, dass sie in der Vorschau gerendert werden. Das ist mächtig, birgt aber XSS-Risiken, wenn das Markdown aus einer nicht vertrauenswürdigen Quelle stammt; halte die Ausgabe bereinigt, wenn du Eingaben von Benutzern akzeptierst.
  • Setext- vs. ATX-Überschriften. Unterstrichene Überschriften (=== unter dem Text) werden neben dem #-Stil unterstützt. Manche ältere Markdown-Werkzeuge erzeugen Setext, daher werden beide Formen identisch konvertiert.
  • Referenzstil-Links. Links der Form [text][ref] gefolgt von [ref]: url werden erkannt; die Referenzdefinition wird nicht als Text gerendert.
  • Harte Zeilenumbrüche. Zwei abschließende Leerzeichen am Ende einer Zeile oder ein Backslash erzeugen ein <br> gemäß CommonMark. Einzelne Zeilenumbrüche innerhalb von Absätzen werden verbunden, was manchmal Personen überrascht, die von Plattformen kommen, wo jeder Zeilenumbruch zu einem Umbruch wird.

Die CommonMark-Spezifikation

CommonMark ist ein standardisierter Markdown-Dialekt, entwickelt von John MacFarlane und anderen, erstmals 2014 veröffentlicht und derzeit in Version 0.31.2. Die Spezifikation unter spec.commonmark.org enthält eine Referenzimplementierung (cmark) und eine umfassende Testsuite mit über 600 Fällen. Vor CommonMark hatte Markdown Dutzende inkompatibler Implementierungen; dieselbe Eingabe wurde auf Reddit, Stack Overflow, GitHub und Daring Fireball unterschiedlich gerendert. CommonMark reduziert diese Mehrdeutigkeit. GitHub Flavored Markdown ist als CommonMark plus einige Erweiterungen spezifiziert: Tabellen, Aufgabenlisten, Durchstreichen, Autolinks und deaktiviertes rohes HTML. GFM ist das, was du auf GitHub siehst, und ist am nächsten an einem "modernen Standard"-Markdown-Dialekt.

Alternativen

markdown-it ist die beliebteste JavaScript-Markdown-Bibliothek und wird intern von VS Code für die Vorschau verwendet. remark ist eine vollständige AST-basierte Toolchain, die dir erlaubt, Markdown vor dem Rendern zu transformieren. pandoc, in Haskell geschrieben, ist das Schweizer Taschenmesser: Markdown zu HTML, zu DOCX, zu PDF, zu LaTeX, alles aus einer Binärdatei. Für Static-Site-Generatoren verwendet Hugo Goldmark, Astro intern remark, und Next.js unterstützt MDX, das Markdown mit JSX kombiniert. Greife zu einer Build-Schritt-Bibliothek, wenn du Pipeline-Integration, benutzerdefinierte Plugins oder Syntax-Highlighting benötigst. Dieses Browser-Werkzeug ist für den Einzelfall gedacht, in dem du nur HTML aus einem Markdown-Snippet benötigst, ohne etwas installieren zu müssen.

Häufig gestellte Fragen

Unterstützt der Konverter den gesamten CommonMark-Standard?

Die häufig genutzten Teile werden unterstützt: Überschriften, Absätze, Betonung, Links, Bilder, geordnete und ungeordnete Listen, umzäunte Code-Blöcke, Inline-Code, Blockzitate, horizontale Linien und Referenzstil-Links. Die Randbereiche der Spezifikation - HTML-Blöcke innerhalb von Listenpunkten, Link-Referenzdefinitionen in Blockzitaten, Kantenfälle beim Parsen von Betonung - entsprechen der Spezifikation dort, wo sie häufig vorkommen, bestehen aber möglicherweise nicht die vollständige CommonMark-Testsuite mit 600+ Elementen. Für geschäftskritische Nutzung empfiehlt sich <code>markdown-it</code> oder <code>remark</code> im strikten Modus.

Wird GitHub Flavored Markdown unterstützt?

Die gebräuchliche Teilmenge: umzäunte Code-Blöcke mit Sprach-Hinweisen, automatisches Verlinken einfacher URLs und Durchstreichen mit <code>~~text~~</code>. Tabellen mit Pipe-Syntax und Aufgabenlisten funktionieren in den meisten Fällen, haben aber Eigenheiten bei der Zellausrichtungssyntax. Für perfekte GFM-Ausgabe verwende <code>remark-gfm</code> in einem Node-Skript; für schnelle Vorschauen ist dieses Werkzeug in der Regel nah genug, um das Ergebnis in GitHubs Vorschaubereich zu überprüfen, bevor du commitest.

Wird mein Markdown hochgeladen?

Nein. Der Konverter läuft als Preact-Komponente in deinem Browser-Tab und erzeugt HTML durch einen lokalen Funktionsaufruf. Es gibt keinen Fetch-Request, kein WebSocket, keine localStorage-Persistenz. Markdown enthält oft Entwurfsinhalte, die du nicht von Dritten indiziert haben möchtest, daher ist die Nur-lokal-Garantie wichtig; du kannst dies mit den DevTools-Netzwerk-Tabs überprüfen, der keine Anfragen anzeigt, wenn du in das Eingabefeld tippst.

Wie funktioniert der Vorschau-Tab?

Die Vorschau verwendet dasselbe generierte HTML, das im Code-Tab angezeigt wird, gerendert in einem in eine Sandbox gestellten Lesebehälter auf der Seite. Der Behälter wendet ein minimales leseerleichterndes Stylesheet an (lesbarer Zeichensatz, angenehmer Zeilenabstand, begrenzte Breite), damit du Struktur und Hierarchie beurteilen kannst. Das endgültige Erscheinungsbild hängt vom CSS der Seite ab, auf der du das HTML einfügst; die Vorschau ist eine neutrale Basis, kein spezifisches Zieldesign.

Kann rohes HTML in meinem Markdown in der Vorschau gerendert werden?

Ja. CommonMark erlaubt ausdrücklich rohe HTML-Blöcke und Inline-HTML, und die Vorschau respektiert sie. Neuere Sicherheitsmaßnahmen (Commit 540fe3d) blockieren <code>&lt;script&gt;</code>-Tags und anderen risikoreichen Markup, um XSS zu verhindern, aber die meisten präsentationsbezogenen HTML-Elemente (<code>&lt;div class="callout"&gt;</code>, <code>&lt;table&gt;</code>, <code>&lt;picture&gt;</code>) werden durchgelassen. Wenn du Markdown aus einer nicht vertrauenswürdigen Quelle konvertierst, bereinige die Ausgabe vor der Veröffentlichung.

Warum kollabieren manche Absätze, wenn ich umgebrochenen Text einfüge?

CommonMark verbindet aufeinanderfolgende Zeilen innerhalb eines Absatzes und behandelt Zeilenumbrüche als einfachen Leerraum. Das ist beabsichtigt: es entspricht der Typografie, in der ein einzelner Zeilenumbruch kein Umbruch ist. Um einen Zeilenumbruch innerhalb eines Absatzes zu erzwingen, beende die Zeile mit zwei Leerzeichen oder einem Backslash. Um in separate Absätze zu teilen, verwende eine Leerzeile dazwischen.

Was ist mit umzäunten Code-Blöcken mit verschachtelten Backticks?

Ein Zaun, der mit drei Backticks geöffnet wird, kann einzelne oder doppelte Backticks ohne vorzeitiges Schließen enthalten. Wenn du drei oder mehr Backticks in Code einschließen musst, öffne den Zaun mit vier oder mehr des gleichen Zeichens und schließe mit derselben Anzahl. Der Konverter bewahrt die öffnende Zaunlänge für den Abschluss, was den CommonMark-Regeln entspricht.

Werden Links in einem neuen Tab geöffnet?

Nein. CommonMark erzeugt einfaches <code>&lt;a href="..."&gt;</code> ohne <code>target="_blank"</code> oder <code>rel</code>-Attribute, weil das präsentationsbezogene Entscheidungen sind, die im CSS oder JavaScript deiner Rendering-Umgebung liegen, nicht in der Markdown-Quelle. Wenn du Neue-Tab-Verhalten möchtest, verarbeite das HTML nach oder verwende einen Renderer mit einem Plugin, das diese Attribute basierend auf der URL hinzufügt.

Wie werden Bilder skaliert?

Gar nicht. Markdown <code>![alt](src)</code> erzeugt <code>&lt;img&gt;</code> nur mit <code>src</code> und <code>alt</code>; keine Breite oder Höhe wird hinzugefügt. Die Breite muss durch CSS in deinem Ziel-Rendering-Kontext festgelegt werden oder durch die intrinsischen Dimensionen des originalen Bildes, das über das Netzwerk geladen wird. GFM erlaubt Dimensionen mit einem Query-Parameter in manchen Renderern; dieser Konverter implementiert diese Erweiterung nicht.

Kann ich dies für E-Mail-HTML verwenden?

Die rohe Markdown-zu-HTML-Ausgabe funktioniert für E-Mails, aber die meisten E-Mail-Clients benötigen Inline-Styles, da externe und sogar <code>&lt;style&gt;</code>-Blöcke oft entfernt werden. Führe das generierte HTML durch ein Inlining-Werkzeug wie Juice oder Premailer, oder verwende ein dediziertes E-Mail-fokussiertes Markdown-Werkzeug wie MJML. Für einfache Transaktions-E-Mails mit einfacher Formatierung reicht die unstylisierte Ausgabe dieses Werkzeugs aus.

Verwandte Tools

Mehr Text Tools

ZeroUtil unterstützen