Zum Hauptinhalt springen
Tooletto

HTML-Formatierer

Formatieren Sie unordentliches oder minifiziertes HTML mit korrekter Einrückung, mit einem echten HTML-Parser, der auch eingebettetes CSS und JavaScript korrekt formatiert. Syntaxfehler werden mit Zeilennummer gemeldet.

  • Dateien verlassen niemals Ihr Gerät
  • Kostenlos, keine Anmeldung
  • Keine Wasserzeichen
  • Funktioniert nach dem Laden auch offline
Loading tool…

So verwenden Sie HTML-Formatierer

  1. 1

    HTML einfügen

    Minifiziert, schlecht eingerückt oder handgeschrieben — alles funktioniert.

  2. 2

    Einrückung wählen

    2 Leerzeichen, 4 Leerzeichen oder Tabs.

  3. 3

    Ergebnis kopieren

    Oder als .html-Datei herunterladen.

Warum HTML strenger mit Leerzeichen umgeht, als es scheint

Der Großteil von HTML toleriert, dass ein Formatierer seine Leerzeichen frei neu ordnet — zusätzliche Einrückung zwischen Blockelementen wie `<div>` und `<p>` hat keinen sichtbaren Effekt, weil Browser Leerzeichenfolgen zwischen diesen Elementen beim Rendern zusammenfallen lassen. Drei spezifische Fälle brechen diese Annahme vollständig: Inhalt innerhalb von `<pre>` rendert jedes Leerzeichen und jeden Zeilenumbruch wörtlich, exakt wie geschrieben; `<textarea>` behandelt seinen Inhalt genauso, da es gedacht ist, exakten, vom Nutzer editierbaren Text wiederzugeben; und jedes Element mit `white-space: pre` in CSS erbt dieselbe wörtliche Behandlung. Ein Formatierer, der Leerzeichen innerhalb eines dieser Blöcke neu ordnet, ändert, was die Seite tatsächlich anzeigt, nicht nur wie der Quellcode aussieht — deshalb lässt dieser Formatierer sie vollständig unangetastet, statt seine üblichen Einrückungsregeln anzuwenden.

Inline-Elemente direkt neben Text sind ein subtilerer Fall: Ein Leerzeichen zwischen zwei Inline-Elementen ist manchmal visuell bedeutsam — das Leerzeichen zwischen zwei Wörtern, die über separate `<span>`-Tags verteilt sind, zum Beispiel — daher ist der Formatierer bei Inline-Inhalt bewusst konservativ und lässt mehrdeutige Leerzeichen lieber so, wie sie sind, statt zu riskieren, ein Leerzeichen zusammenfallen zu lassen, das echte visuelle Arbeit leistete.

Eine ganze Seite in einem Durchgang formatieren, nicht nur die Tags

Eine als einzelne HTML-Datei zusammengesetzte Seite bettet häufig ihr eigenes CSS in einen `<style>`-Block und ihr eigenes JavaScript in einen `<script>`-Block ein, und ein Formatierer, der nur HTML-Tags versteht, würde diesen eingebetteten Code als unformatierten Block belassen oder, schlimmer, ihn verderben, indem er geschweifte Klammern und Semikolons als HTML-Syntax behandelt. Den Inhalt dieser Blöcke an einen echten CSS-Parser bzw. echten JavaScript-Parser zu übergeben bedeutet, dass die gesamte Datei — Markup, Styles und Verhalten zusammen — konsistent formatiert zurückkommt, statt nur die äußere HTML-Struktur.

Warum Browser beschädigtes HTML akzeptieren und ein Formatierer nicht kann

Browser sind mit einem Fehlerbehebungsmodell gebaut, das speziell dafür entworfen ist, selbst aus schwer fehlerhaftem Markup etwas Vernünftiges zu rendern — ein nicht geschlossenes Tag, ein fehlendes Anführungszeichen, in ungültiger Reihenfolge verschachtelte Elemente — weil das Web jahrzehntealtes, unvollkommenes HTML in Produktion hat, das trotzdem angezeigt werden muss. Ein Formatierer kann sich dieselbe Nachsicht nicht leisten: Um ein Dokument neu zu formatieren, muss er ein präzises strukturelles Verständnis davon aufbauen, was in was verschachtelt ist, und ein Dokument mit wirklich unausgeglichenen Tags hat keine einzige korrekte Struktur zum Wiederherstellen. Deshalb kann eine Seite, die sich in einem Browser völlig normal anzeigt, trotzdem von diesem Formatierer abgelehnt werden — der Browser hat die Mehrdeutigkeit still auf seine eigene Weise repariert, während ein Tool, das korrekt neu formatieren will, die Mehrdeutigkeit melden muss statt zu raten.

Template-Syntax ist ein häufiger Fehlalarm

Eine Datei, die beim Formatieren scheitert, ist sehr oft überhaupt kein beschädigtes HTML, sondern ein Template — Handlebars, Jinja, Blade, EJS oder Ähnliches — das Template-Direktiven mit Markup mischt und ein Dokument erzeugt, das für sich genommen kein gültiges eigenständiges HTML ist und das nie sein muss. Das Template wird erst zu echtem, wohlgeformtem HTML, nachdem seine Template-Engine läuft und echte Daten substituiert. Die gerenderte Ausgabe zu formatieren, erfasst nach der Verarbeitung durch die Template-Engine — aus der „Seitenquelltext anzeigen"-Funktion eines Browsers, zum Beispiel — vermeidet das vollständig, da diese Ausgabe echtes HTML ohne verbleibende Template-Syntax ist.

Häufig gestellte Fragen

Formatiert es das CSS und JavaScript innerhalb der Seite?

Ja. Der Inhalt innerhalb von `<style>` und `<script>` wird an die CSS- und JavaScript-Parser übergeben, daher wird eine komplette Ein-Datei-Seite korrekt formatiert, statt diese Blöcke unangetastet zu lassen.

Ändert die Formatierung, wie meine Seite gerendert wird?

Fast nie, aber nicht ganz nie: HTML behandelt Leerzeichen innerhalb von `<pre>`, `<textarea>` und Elementen mit `white-space: pre` als bedeutsam. Diese werden exakt so gelassen, wie sie sind. Inline-Elemente können in Randfällen um ein Leerzeichen verschoben werden, weshalb der Formatierer bei ihnen konservativ ist.

Warum wird mein HTML abgelehnt?

Normalerweise wirklich unausgeglichene Tags, oder Template-Syntax wie Handlebars, Jinja oder Blade, die kein gültiges HTML ist. Browser reparieren beschädigtes Markup still; ein Formatierer muss die Struktur verstehen und kann das nicht.

Wird mein Markup irgendwohin hochgeladen?

Nein. Der Parser läuft in Ihrem Browser, daher bleiben unveröffentlichte Seiten und Kundenarbeit auf Ihrer Maschine.

Häufige Aufgaben für HTML-Formatierer