Der HTML zu Text Konverter tut genau eine Sache und tut sie in deinem Browser: Du fügst ein HTML-Dokument ein, drückst auf Konvertieren und erhältst den lesbaren Text, den eine Person sähe, wenn die Markierung entfernt wäre. Nichts wird gespeichert und nichts wird hochgeladen; der Parser ist derselbe DOMParser, den dein Browser ohnehin verwendet, und er läuft auf deinem Rechner.
HTML einfügen und auf Konvertieren drücken
Es gibt keine Live-Konvertierung: Die Eingabe bleibt unberührt, bis du auf den Button Konvertieren drückst, und erst dann füllt sich das Ausgabefeld. Eine Checkbox steuert das Layout der Ausgabe, Absatzstruktur beibehalten, und sie ist standardmäßig aktiviert. Solange sie aktiv ist, behält der Text seine Absatzbrüche; ausgeschaltet wird alles zu einer einzigen ununterbrochenen Zeile aus Wörtern. Wenn die Eingabe leer ist oder nur Leerzeichen enthält, tut der Button einfach nichts und es erscheint keine Fehlermeldung, also ist ein versehentliches Einfügen von nichts kein Fehlerzustand.
Zwei Ausgabeformen: Absätze oder eine Zeile
Mit aktiver Checkbox durchläuft der Konverter das Dokument Block für Block. Jedes Element, das ein Browser als eigene Zeile rendert, wie ein Absatz, eine Überschrift, ein Listeneintrag oder eine Tabellenzeile, beginnt auf einer neuen Zeile, getrennt vom Vorherigen durch eine Leerzeile. Mit ausgeschalteter Checkbox werden all diese Brüche zu einzelnen Leerzeichen: dasselbe Dokument kehrt als eine flache Textzeile zurück, mit den Wörtern in derselben Reihenfolge und ohne Zeilenumbrüche. Leerzeichen im Text werden in beiden Fällen normalisiert, also wird eine Kette von Leerzeichen oder ein verirrtes Tab zu einem einzelnen Leerzeichen.
Was verschwindet: Skripte, Stile und Kommentare
Drei Arten von Inhalt gelangen nie in die Ausgabe. Der Konverter entfernt jedes script-, style- und noscript-Element, bevor er etwas liest, damit Inline-JavaScript, CSS-Regeln und Fallback-Blöcke komplett verschwunden sind. HTML-Kommentare werden auf die gleiche Weise übersprungen: Ein Kommentar zwischen zwei Absätzen hinterlässt keine Spur, nicht einmal eine Leerzeile. Was übrig bleibt, ist der sichtbare Text und die Entitäten darin, denn der Parser decodiert sie auf dem Weg: & kommt als nacktes & zurück und <tag> wird zu wörtlichen spitzen Klammern um das Wort.
Tabellen, Listen und Bilder
Eine Tabelle kommt als einfache Zeilen zurück: Jede Zeile wird zu ihrer eigenen Zeile und jede Zelle wird von der nächsten durch ein einzelnes Leerzeichen getrennt, ohne Tabs und ohne senkrechte Striche irgendwo in der Ausgabe. Eine Liste verhält sich wie eine Menge von Blöcken, also landet jeder Eintrag auf seiner eigenen Zeile mit einer Leerzeile zwischen den Einträgen. Bei Bildern kann die Ausgabe überraschen: Ein img-Tag trägt gar nichts bei, und sein alt-Attribut wird nie gelesen, sodass ein Absatz, der ein Bild umschließt, den Text vor und nach dem Bild direkt verbunden zurückgibt, und ein img mitten im Wort kann zwei Fragmente zusammenkleben lassen.
br und hr: ein Zeilenumbruch, keine Leerzeile
Nicht jeder Umbruch ist ein Absatzbruch. Ein br oder hr innerhalb eines Absatzes fügt einen einzelnen Zeilenumbruch ein: Das nächste Wort beginnt auf der Zeile darunter, aber es gibt keine Leerzeile dazwischen, was ein Gedicht oder eine Adresse als ein einziges visuelles Block zusammenhält. Das ist anders als das, was das Schließen eines Absatz-Tags macht, das die vollständige Leerzeilen-Trennung hinzufügt. Im Ein-Zeilen-Modus werden beide Arten von Umbrüchen am Ende zum gleichen einzelnen Leerzeichen, also spielt der Unterschied nur eine Rolle, wenn die Absatzstruktur beibehalten wird.
Die einzige Ausnahme: pre-Blöcke behalten ihre Leerzeichen
Alles im Konverter läuft durch dieselbe Leerzeichen-Regel, mit einer einzigen Ausnahme. Ein pre-Block wird wörtlich kopiert: Sein Textinhalt wird genau so übernommen, wie er geschrieben ist, mit Einrückung und Leerzeilen, und danach folgt wie bei jedem anderen Block eine Leerzeile. Legt man ein Codebeispiel in ein pre-Tag, kommt es in exakt der Form zurück, in der man es eingegeben hat, und deshalb ist pre der Standardort, um Code und spaltenalignierten Text zu behalten, wenn der Rest des Dokuments abgeflacht wird.
Kopieren, löschen und wohin als Nächstes
Der Workflow ist bewusst klein. Ein Kopieren-Button erscheint in der Ausgabe nur, wenn es etwas zu kopieren gibt, und Löschen leert die Eingabe und die Ausgabe mit einem einzigen Druck. Es gibt keine Schaltfläche zum Tauschen, weil die Ausgabe strukturloser Klartext ist und nichts zurückzuspeisen bleibt, und nichts auf der Seite wird zwischen Besuchen gespeichert. Wenn die Markierung vor der Konvertierung unordentlich ist, führe zuerst den HTML-Formatierer aus, um die Einrückung zu normalisieren. Wenn du diese Sonderzeichen umgekehrt brauchst, codiert und decodiert der HTML-Entitäten Encoder/Decoder sie für dich, und wenn dein Inhalt als Markdown beginnt, zeigt die Markdown-Vorschau ihn gerendert, bevor du ihn exportierst, während der HTML-Formatter-Guide die Formatierungsseite im Detail erklärt.