100 % lokal — Ihre Daten verlassen nie Ihren Browser

Markdown zu HTML — in ein Template einfügen

Markdown in HTML verwandeln: GFM-Tabellen, Aufgabenlisten, Durchgestrichenes und Fußnoten — fertig für eine Seite, ein E-Mail-Template oder ein CMS.

Sofort Privat Null Cookies

Markdown-Eingabe

HTML-Ausgabe

Was dieses Werkzeug tut

Markdown hinein, HTML heraus.

# Titel

Etwas **Fettes** und ein [Link](https://x.dev).
<h1>Titel</h1>
<p>Etwas <strong>Fettes</strong> und ein <a href="https://x.dev">Link</a>.</p>

GitHub Flavored Markdown ist eingeschaltet: Tabellen, Aufgabenlisten, Durchgestrichenes und Autolinks werden gelesen. Ein eingezäunter Block behält seine Sprache als class="language-js", was Syntaxfärber erwarten.

Endlich Fußnoten

Ada schrieb den ersten Algorithmus[^1].

[^1]: Zu Menabreas Aufzeichnungen, 1843.
<p>Ada schrieb den ersten Algorithmus<sup class="footnote-ref"><a href="#fn-1" id="fnref-1">1</a></sup>.</p>
<section class="footnotes">
<ol>
<li id="fn-1"><p>Zu Menabreas Aufzeichnungen, 1843. <a href="#fnref-1">↩</a></p></li>
</ol>
</section>

marked, die Bibliothek hinter diesem Werkzeug, kennt keine Fußnoten. [^1] galt daher als Referenzlink und [^1]: Zu Menabreas Aufzeichnungen, 1843. als dessen Definition — die Marke wurde zu einem Link auf eine nach der Notiz benannte Seite, und der Text der Notiz tauchte nirgends auf. Ein echter Fehler, beim Schreiben dieser Seite gefunden und behoben. Die Notizen werden in der Reihenfolge der Marken nummeriert, und eine Marke ohne Notiz dahinter bleibt der Text, der sie ist.

Das HTML gehört Ihnen, und es ist nicht bereinigt

Ein [harmloser Link](javascript:alert(1)) und <div onclick="stehlen()">rohes HTML</div>.

Beides kommt unberührt durch, und damit hält Markdown sein Versprechen: das Format erlaubt rohes HTML, und ein Umwandler, der es entfernte, würde über Ihr Dokument lügen. Das Ergebnis wird hier als Text angezeigt und nie in die Seite selbst eingesetzt.

Die Folge liegt bei Ihnen: stammt das Markdown von jemand anderem — ein Kommentar, ein Ticket, ein Formular —, bereinigen Sie das HTML, bevor Sie es veröffentlichen. Eine Bibliothek wie DOMPurify erledigt das in einem Aufruf, und ihr Platz ist dort, wo das HTML veröffentlicht wird, nicht hier.

Was Sie nicht bekommen

  • Ein Dokument. Kein <html>, kein <head>, keine Kodierungsangabe, kein Stylesheet: das hier ist ein Fragment zum Einfügen.
  • Anker an Überschriften. GitHub setzt auf jede Überschrift eine id; das ist eine Anzeigekonvention, nicht Markdown, also kommen <h2> nackt heraus.
  • Ein <br> für jeden Zeilenumbruch. Ein einzelner Umbruch im Absatz bleibt ein Leerzeichen, wie die Spezifikation es will. Zwei Leerzeichen am Zeilenende oder eine Leerzeile tun, was Sie erwarten.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Wird das HTML bereinigt?
Nein, und das ist die Regel von Markdown, kein Versäumnis: das Format erlaubt rohes HTML, also kommt ein `<script>` oder ein `onclick` aus Ihrem Markdown genau so heraus, wie es hineinging. Diese Seite zeigt das Ergebnis als Text und fügt es nie in sich selbst ein. Wenn Sie fremdes Markdown umwandeln und veröffentlichen, schicken Sie das HTML vorher durch einen Bereiniger — ein `[Link](javascript:…)` kommt aus demselben Grund durch.
Funktionieren Fußnoten?
Ja, seit diese Seite geschrieben wurde. marked kennt keine Regel dafür: `[^1]` galt als Referenzlink und `[^1]: die Notiz` als dessen Definition, sodass die Marke zu einem Link auf eine Seite namens „die Notiz“ wurde und die Notiz selbst aus dem Dokument verschwand. Jetzt werden sie in der Reihenfolge der Marken nummeriert und unten gesammelt, mit Rücksprung, wie GitHub es rendert.
Was bekomme ich genau?
Ein Fragment, kein Dokument: kein `<html>`, kein `<head>`, kein Stylesheet und keine `id` auf Überschriften. Fügen Sie es in eine Vorlage oder ein CMS-Feld ein. GFM ist an: Tabellen, Aufgabenlisten, Durchgestrichenes, Autolinks und Codeblöcke mit `class="language-…"` kommen alle durch.

Ähnliche Konverter