HandyTools Hub

Markdown-Editor

Schreiben Sie Markdown und sehen Sie es mit Syntax-Highlighting in Echtzeit in der Vorschau.

0 Zeichen | 0 Wörter

Was beim Tippen passiert

Der linke Bereich ist eine einfache Textarea. Bei jedem Eingabeereignis wartet der Editor 150 Millisekunden und schickt dann das rohe Markdown durch marked.parse(text, { breaks: true, gfm: true }). GitHub Flavored Markdown ist aktiviert, und einzelne Zeilenumbrüche werden durch die Option breaks zu Zeilenumbrüchen. Die resultierende HTML-Zeichenkette läuft anschließend durch DOMPurify mit einer bestimmten Sperrliste, bevor sie den Vorschaubereich erreicht.

Der Sanitizer verbietet fünf Tags — form, input, button, select und textarea — und entfernt vier Event-Handler-Attribute: onerror, onclick, onload und onmouseover. Alles andere im Markdown, einschließlich rohem HTML, das Sie einfügen, wird zuerst geparst und danach bereinigt. Der rechte Bereich zeigt das bereinigte Ergebnis, und die Symbolleiste wird beim Tippen live neu gerendert.

Praxisbeispiele

Sie tippenSie erhaltenGrund
# Hello<h1>Hello</h1>Standard-ATX-Überschrift
**bold** and *italic*<p><strong>bold</strong> and <em>italic</em></p>Inline-Hervorhebung
- [x] doneEin Listeneintrag „done“, ohne KontrollkästchenDas Tag input ist verboten
<img src=x onerror=alert(1)><img src="x">onerror wird entfernt, das Tag bleibt
<script>alert(1)</script>Nichts wird gerendertDas Skript wird vom Sanitizer entfernt

Zeichen- und Wortzählung verwenden den rohen Quelltext, nicht die gerenderte Ausgabe. Die Zeichenkette # Hello world meldet 13 Zeichen und 3 Wörter, weil #, Hello und world jeweils gezählt werden. Der Wortzähler entfernt führende und nachfolgende Leerzeichen und teilt an Leerraumfolgen, sodass leere Zeilen die Summe nicht aufblähen.

Unterstützte Syntax und Bereinigung

Das Flag gfm: true aktiviert Tabellen, umzäunte Codeblöcke, Durchstreichen, Autolinks und Aufgabenlisten. Überschriften, Blockzitate, verschachtelte Listen, Inline-Code, Links und Bilder funktionieren. Rohes, in das Markdown eingebettetes HTML ist nur erlaubt, wenn es den DOMPurify-Durchlauf übersteht, daher werden <details>, <summary> und <br> gerendert, Formulare und interaktive Steuerelemente dagegen nicht. Umzäunte Codeblöcke erhalten nur dann Syntaxhervorhebung, wenn ein Highlighter (hljs) auf der Seite verfügbar ist; andernfalls werden sie als einfache Monospace-Blöcke dargestellt.

Häufige Fehler

  • Die Wortzählung als Prosa-Zählung missverstehen. Markdown-Syntax und URLs werden mitgezählt, daher liest sich ein linklastiger Absatz deutlich länger als der sichtbare Text.
  • Geheimnisse oder Produktionsdaten einfügen. Das automatische Speichern schreibt das gesamte Dokument unverschlüsselt unter einem localStorage-Schlüssel und lässt es dort, bis Sie die Websitedaten löschen oder es ersetzen.
  • Erwarten, dass eingebettete Formulare funktionieren. Der Sanitizer entfernt Formularsteuerelemente vollständig, daher erscheint ein HTML-Mockup mit Eingabefeldern in der Vorschau als statischer Text.
  • Annehmen, Bilder seien lokal. Eingefügte Bild-URLs werden beim Rendern der Vorschau weiterhin vom entfernten Host abgerufen; ein defekter Link zeigt ein Symbol für ein gebrochenes Bild.
  • Den 5-Sekunden-Timer vergessen. Ein zu schnelles Schließen des Tabs kann die letzten Änderungen verlieren, weil das automatische Speichern intervallbasiert ist.

Genauigkeit und Grenzen

Es wird nur ein Dokument gespeichert. Der Schlüssel onlinehandytools-markdown-editor hält eine einzelne Zeichenkette, sodass ein Projektwechsel den vorherigen Entwurf ohne Warnung überschreibt. Es gibt keinen Verlauf über das native Rückgängig der Textarea hinaus, keine Versionierung, keinen Dateiimport und keine gemeinsame Bearbeitung. Das exportierte HTML hat eine feste, eingebaute Gestaltung; es ist überall lesbar, passt aber nicht zu einem bestimmten Designsystem. „Copy HTML“ legt das bereinigte Fragment in die Zwischenablage, kein vollständiges Dokument. Da DOMPurify nach marked angewendet wird, verliert jede Markdown-Erweiterung, die auf verbotene Tags angewiesen ist, stillschweigend ihre Funktion, statt einen Fehler zu melden.

Der HTML-Export schreibt eine vollständige Seite mit UTF-8-Zeichensatz, einem Viewport-Meta-Tag und eingebettetem CSS für Überschriften, Code, Tabellen und Blockzitate. Der Markdown-Export schreibt den rohen Quelltext Byte für Byte. Dateinamen stammen aus den Oberflächen-Strings und nicht aus einem Namensfeld, sodass wiederholte Exporte einander überschreiben, sofern Ihr Browser sie nicht umbenennt.

Exportoptionen im Vergleich

AktionAusgabeAm besten für
HTML exportierenEine vollständige Seite mit eingebettetem CSSTeilen einer eigenständigen, in sich geschlossenen Vorschau
MD exportierenDen rohen Markdown-QuelltextEinchecken in ein Repository oder einen Static-Site-Generator
HTML kopierenDas bereinigte HTML-FragmentEinfügen in ein CMS-Feld, das Rich Text akzeptiert

Der HTML-Export ist einseitig: Überschriften, Links, Tabellen und Codeblöcke werden übernommen, die Bearbeitbarkeit jedoch nicht, behandeln Sie daher die Markdown-Quelle als Master. Beachten Sie, dass die exportierte Seite die Syntaxhervorhebung der Vorschau nicht enthält — sie liefert den Code als Klartext in einem gestalteten pre-Block, weil der Highlighter ein Seitenskript und nicht Teil des Serialisierers ist. Die Zwischenablage-Option ist am besten, wenn ein CMS gerendertes HTML akzeptiert und Sie Formatierung ohne Dateidownload wünschen. Keine der drei Optionen bettet Bilder als Data-URIs ein, daher hängt eine geteilte HTML-Datei weiterhin von den ursprünglichen Bild-Hosts ab, um sie anzuzeigen.

Praktische Tipps

Halten Sie oben eine README-artige erste Überschrift (# Project Name), damit die exportierte Datei einen klaren Titel hat. Verwenden Sie Tabellen für Vergleichsdaten und umzäunte Codeblöcke mit Sprach-Tag für die Hervorhebung. Bevor Sie veröffentlichen, fügen Sie das rohe Markdown in einen Diff-Checker ein, um Änderungen zu prüfen, ohne die gerenderte Vorschau zu lesen. Wenn Sie ein garantiertes Speichern benötigen, kopieren Sie das rohe Markdown manuell, statt sich auf das 5-Sekunden-Fenster des automatischen Speicherns zu verlassen.

Achten Sie auf die Reihenfolge der Operationen: Erst parst marked den Text, dann filtert DOMPurify das Ergebnis. Das bedeutet, dass ein Markdown-Konstrukt, das intern auf ein verbotenes Tag angewiesen ist, nicht als Fehler erscheint, sondern einfach leer oder unvollständig rendert. Prüfen Sie solche Fälle immer in der Vorschau und nicht nur im Quelltext. Für Screenshots und Abgleiche empfiehlt es sich, den Markdown-Quelltext in einer Monospace-Schrift vorzubereiten, damit Einrückungen bei Listen und Codeblöcken sichtbar bleiben. Wenn Sie dieselbe Datei an mehrere Empfänger geben, benennen Sie den Export vor dem Versenden um, weil die Vorgabe-Dateinamen sonst kollidieren.

Verwandte Tools

Häufig gestellte Fragen

Warum verschwinden meine GitHub-Aufgabenlisten-Kästchen in der Vorschau?

Marked rendert Aufgabenlisten als input-Elemente, aber DOMPurify ist so konfiguriert, dass form, input, button, select und textarea verboten sind. Die Kästchen werden entfernt, übrig bleibt der Listentext ohne Kontrollkästchen.

Zählt der Wortzähler Markdown-Symbole wie # und ** mit?

Ja. Die Zählung teilt den rohen Editor-Text an Leerzeichen, also zählt „# Report“ als zwei Wörter und ein fettes „**title**“ als eines. Entfernen Sie die Syntax zuerst, wenn Sie nur den Fließtext zählen wollen.

Kann ich zwei verschiedene Dokumente gleichzeitig im Editor halten?

Nein. Das automatische Speichern schreibt in einen einzigen localStorage-Schlüssel, sodass ein zweites Dokument das erste überschreibt. Exportieren Sie den aktuellen Entwurf, bevor Sie ein neues beginnen.

Ist die exportierte HTML-Datei eigenständig?

Ja. Sie enthält das gerenderte Markup und ein kleines eingebettetes Stylesheet für Überschriften, Codeblöcke, Tabellen und Blockzitate, sodass sie ohne Editor und ohne externes CSS korrekt geöffnet wird.

Was passiert, wenn ich den Tab direkt nach dem Tippen schließe?

Das automatische Speichern läuft alle 5 Sekunden per Timer, nicht bei jedem Tastendruck. Änderungen in den letzten Sekunden vor dem Schließen können verloren gehen; lösen Sie bei knappem Timing manuell Kopieren oder Export aus.

Kann ich eine vorhandene .md-Datei in den Editor importieren?

Es gibt kein Import-Bedienelement. Fügen Sie das Markdown stattdessen in den linken Bereich ein; der Export ist einseitig, als HTML, rohes Markdown oder HTML in der Zwischenablage.

Geprüft vom HandyTools-Hub-Team · Zuletzt aktualisiert