YAML ist das Standard-Configurationsformat für Docker Compose, Kubernetes, CI/CD-Pipelines und Ansible, und der YAML-Formatierer dreht sich um die Frage, diese Dateien wieder lesbar zu machen. Fügen Sie ein beliebiges YAML-Dokument ein, wählen Sie einen der beiden Modi, und das Tool emittiert das gesamte Dokument neu mit konsequentem Abstand, komplett in Ihrem Browser. Nichts wird gespeichert oder hochgeladen; Parser und Serializer laufen auf Ihrem Rechner.
YAML einfügen und einen Modus wählen
Es gibt kein Live-Reformatting: Das Dokument wird nur verarbeitet, wenn Sie einen Button drücken. Formatieren ist der Standardmodus und baut das Dokument im Blockstil neu auf, also das Layout mit einem Schlüssel pro Zeile, das die meisten Konfigurationsdateien nutzen. Minifizieren zielt auf ein anderes Ziel: die kompakteste Darstellung zu erzeugen, die der Parser noch lesen kann. Ein kleines Einrückungs-Auswahlfeld wechselt Formatieren zwischen 2 und 4 Leerzeichen; es erscheint nur im Formatierungsmodus, weil Minifizieren immer 2 verwendet.
Was Formatieren tut: ein sauberes Blockstil-Dokument
Formatieren normiert alle Ebenen des Dokuments auf die von Ihnen gewählte Einrückung. Verschachtelte Mappings und Sequenzen rücken auf feste Offsets aus, Leerzeichen am Zeilenende verschwinden, und eine Ebene entspricht immer einem Einrückungsschritt. Lange Werte werden nie umgebrochen: Ein Wert von 400 Zeichen bleibt auf einer Zeile, denn in Konfigurationsdateien zählt die Lesbarkeit der Struktur mehr als die Zeilenlänge.
Was Minifizieren tut: Flow-Stil unter einem Block-Top-Level
Minifizieren drückt das Dokument nicht auf eine einzige Zeile, und das überrascht. Die oberste Ebene bleibt im Blockstil, aber jeder Wert unter einem obersten Schlüssel wird in Flow-Form geschrieben: Eine Zeichenliste wird zu items: [a, b] und ein verschachteltes Mapping zu a: {b: [1, 2]}. Eine Liste von Maps auf der obersten Ebene wird zu je einem Flow-Map pro Zeile, beginnend mit einem Strich und einer öffnenden Klammer. Werte, die im Flow fehlinterpretiert werden könnten, etwa ein Schlüssel namens y, werden in Anführungszeichen gesetzt, um die Bedeutung exakt zu halten.
Was der Formatierer verwirft und umschreibt
Drei Dinge lohnt sich zu kennen, bevor Sie die Ausgabe vergleichen. Kommentare werden verworfen: Der Parser wandelt das Dokument zuerst in eine Datenstruktur um, und Kommentare überleben diesen Schritt nicht. Anker und Aliase werden beim Parsen verstanden, aber der Serializer ist so konfiguriert, dass er keine Verweise ausgibt, sodass jeder Alias als vollständige Kopie des Wertes zurückkommt, auf den er zeigt. Zahlen werden ebenfalls normalisiert: 3.0 wird zu 3, 1e5 zu 100000, 0x10 zu 16, und leere Werte, Tilden und null werden als null ausgegeben, während eine leere Zeichenfolge eine leere Zeichenfolge bleibt, in Anführungszeichen.
Schlüsselreihenfolge: erhalten, mit einer Ausnahme
Der Formatierer sortiert Ihre Schlüssel nicht. Zeichenschlüssel behalten genau die Reihenfolge, die sie in Ihrem Dokument hatten, also kommt eine Datei, die zebra, ant und m auflistet, in derselben Reihenfolge zurück. Es gibt eine Ausnahme, die wie Sortierung aussehen kann: Ein Schlüssel, der wie eine Ganzzahl aussieht, zum Beispiel 123, wandert an den Anfang des Mappings. Das ist nicht der Formatierer, der eine Reihenfolge wählt; so listet das JavaScript-Objekt, das das geparste Dokument hält, seine Eigenschaften auf, und zahlenartige Schlüssel stehen immer zuerst.
Fehlermeldungen mit Zeile und Spalte
Ungültiges YAML liefert keine vage Fehlersituation. Der Parser meldet das Problem mit Zeilen- und Spaltennummer, beide beginnend bei 1, damit Sie direkt zur fehlerhaften Stelle springen. Doppelte Schlüssel werden auf die gleiche Weise abgelehnt, was hilft, wenn ein kopierter Block zweimal einschleicht. Ein Fall ist anders: Eine zweite Dokumentmarkierung in der Eingabe ist ebenfalls ein Fehler, aber diese Meldung hat keine Position, weil der Parser auf Stream-Ebene aufhört. Nichts einzufügen zeigt eine eigene dedizierte Meldung.
Tauschen, löschen, und wohin als Nächstes
Zwei kleine Steuerelemente runden den Workflow ab. Der Tauschen-Button erscheint, sobald eine Ausgabe vorliegt, kopiert sie zurück in die Eingabe und leert die Ausgabe, was iteratives Korrigieren beschleunigt: formatieren, einen Wert bemerken, den Sie überarbeiten wollen, tauschen, bearbeiten, erneut formatieren. Löschen leert beide Seiten und die Fehlerzeile. Nichts auf der Seite wird gespeichert, daher verlässt sensibles Konfigurationsmaterial nie Ihren Browser. Wenn Ihre Daten als JSON beginnen, fahren Sie zuerst den JSON-Formatierer oder gehen Sie direkt zum JSON/YAML-Konverter. XML-Konfigurationen bekommen dieselbe Behandlung im XML-Formatierer, und für Markupsdateien deckt der HTML-Formatter-Guide dasselbe Formatieren- und Minifizieren-Muster mit geschützten Skriptblöcken ab.