YAML-Formatierer
Formatiert YAML mit einer einheitlichen Einrückungsbreite oder wandelt es in JSON um. Erkennt vermischte Tabulatoren und inkonsistente Einrückungen.
Was ist ein YAML-Formatierer?
Ein YAML-Formatierer nimmt ein Dokument mit uneinheitlicher Einrückung und schreibt es mit einer einheitlichen Einrückung von 2 oder 4 Leerzeichen neu, während dabei gleichzeitig die Syntax geprüft wird. Konfigurationsdateien sammeln durch wiederholtes Kopieren, Einfügen und manuelles Bearbeiten leicht Einrückungsfehler an, und oft bemerkt man das Problem erst spät – als kryptische Fehlermeldung der CI/CD-Pipeline oder des Konfigurationsmanagement-Tools. Da dieses Tool vollständig im Browser läuft, können Sie auch sensible Konfigurationsdateien prüfen, ohne deren Inhalt an einen externen Server zu senden.
Dieses Tool basiert auf einem eigens entwickelten, leichtgewichtigen Parser, der die in Docker Compose, GitHub Actions und Kubernetes-Manifesten häufig genutzte "gebräuchliche Teilmenge" abdeckt: Mappings, Listen, Inline-Flow-Collections und einfache Skalartypen. Fortgeschrittene Funktionen wie Anker (&), Aliase (*), mehrere Dokumente oder Block-Skalare (|/>) werden nicht unterstützt. Wenn Sie mit YAML arbeiten, das auf diese Funktionen angewiesen ist, sollten Sie dieses Tool mit einem vollständigen Parser kombinieren.
So verwenden Sie den YAML-Formatierer
- YAML einfügen Fügen Sie das zu formatierende YAML in das Eingabefeld links ein. Wenn Sie kein Beispiel zur Hand haben, klicken Sie auf "Beispiel", um YAML zum Ausprobieren einzufügen.
- Modus wählen Wählen Sie "Formatieren & Prüfen", um die Syntax zu prüfen und die Einrückung zu vereinheitlichen, oder "In JSON umwandeln", um den YAML-Inhalt als JSON darzustellen.
- Einrückungsbreite wählen Nur im Modus "Formatieren & Prüfen" können Sie zwischen 2 und 4 Leerzeichen für die Ausgabe wählen – passend zur bereits im Projekt verwendeten Konvention.
- Ergebnis prüfen Ist das YAML gültig, erscheint das formatierte Ergebnis (oder die JSON-Umwandlung) rechts. Andernfalls werden eine Fehlermeldung und die Zeilennummer angezeigt, damit Sie direkt zur betroffenen Zeile springen können.
- Ergebnis kopieren Klicken Sie auf "Kopieren", um das Ergebnis in die Zwischenablage zu kopieren und direkt wieder in Ihre Konfigurationsdatei einzufügen.
Tipps für die Nutzung
- Dieses Tool verwendet einen selbst entwickelten, leichtgewichtigen Parser, der Schlüssel: Wert-Paare, Verschachtelung, Listen sowie die Inline-Syntax
[a, b, c]/{a: 1}unterstützt. - Auch wenn Sie YAML mit uneinheitlicher Einrückung einfügen (z. B. 3 oder 5 Leerzeichen), wird es bei erfolgreicher Analyse mit einer einheitlichen Einrückung von 2 oder 4 Leerzeichen neu ausgegeben.
- Im Modus "In JSON umwandeln" können Sie eine Vorschau Ihres YAML-Inhalts direkt als JSON ansehen — praktisch zum Vergleich mit CI-Konfigurationen oder API-Antworten.
- Bei einem Fehler wird die Zeilennummer angezeigt. Prüfen Sie dann diese Zeile auf Einrückungsprobleme oder ein fehlendes Leerzeichen nach dem Doppelpunkt.
- YAML verbietet die Einrückung mit Tabulatoren. Wenn Sie in den Editor-Einstellungen "Tabulatoren in Leerzeichen umwandeln" aktivieren, vermeiden Sie dieses Problem von vornherein.
Wann Sie dieses Tool einsetzen können
Prüfung von CI-Konfigurationen vor dem Commit
Prüfen Sie .yml-Dateien für GitHub Actions oder GitLab CI mit diesem Tool, bevor Sie sie committen, um beschädigte Einrückungen oder versehentliche Tabulatoren zu erkennen, bevor die Pipeline an einem Syntaxfehler scheitert.
Aufräumen von Kubernetes-Manifesten
Deployment- und Service-Manifeste, die von mehreren Personen bearbeitet werden, weisen häufig uneinheitliche Einrückungen auf. Vereinheitlichen Sie diese vor dem Review nach der Konvention Ihres Teams (z. B. 2 Leerzeichen).
Validierung von Docker-Compose-Dateien
Einrückungsfehler in docker-compose.yml fallen oft erst auf, wenn der Container nicht startet. Eine vorherige Prüfung von Syntax und Einrückung mit diesem Tool gibt Ihnen mehr Sicherheit.
YAML und JSON nebeneinander vergleichen
Wenn Sie dieselbe Konfiguration oder API-Daten sowohl in YAML als auch in JSON benötigen, zeigt Ihnen der Modus "In JSON umwandeln" das Umwandlungsergebnis, das Sie anschließend mit anderen JSON-basierten Tools oder Schema-Validierungen weiterverwenden können.
Glossar
- YAML
- Ein rekursives Akronym für "YAML Ain't Markup Language", ein Datenserialisierungsformat, das hierarchische Struktur durch Einrückung ausdrückt. Es wird häufig für Konfigurationsdateien verwendet.
- Einrückung
- Die führenden Leerzeichen einer Zeile, mit denen YAML Eltern-Kind-Beziehungen ausdrückt. Laut Spezifikation dürfen für die Einrückung niemals Tabulatoren verwendet werden.
- Mapping
- Eine Struktur, die Daten als "Schlüssel: Wert"-Paare darstellt – vergleichbar mit einem assoziativen Array oder Objekt in anderen Sprachen.
- Liste (Sequenz)
- Eine Struktur, die Werte geordnet auflistet, wobei jedes Element mit einem Bindestrich und einem Leerzeichen ("- ") beginnt.
- Flow-Stil
- Eine Schreibweise, bei der Mappings und Listen inline in einer Zeile stehen, etwa
{a: 1}oder[a, b, c], ohne sich auf Einrückung zu verlassen. - Anker und Aliase
- Ein Mechanismus, bei dem mit
&namedefinierte Inhalte an anderer Stelle mit*namewiederverwendet werden können, um doppelte Werte zu vermeiden. Dieses Tool unterstützt dies nicht. - Block-Skalar
- Eine Schreibweise für mehrzeilige Zeichenketten mit
|(behält Zeilenumbrüche bei) oder>(wandelt sie in Leerzeichen um). Dieses Tool unterstützt dies nicht. - Norwegen-Problem
- Eine bekannte YAML-Falle, bei der nicht in Anführungszeichen gesetzte Werte wie
nooderyesals boolesche Werte statt als einfache Zeichenketten interpretiert werden.
Häufig gestellte Fragen
|/>).no, yes, on oder off ohne Anführungszeichen, interpretieren viele YAML-Implementierungen dies als Booleschen Wert statt als normale Zeichenkette (etwa den Ländercode von Norwegen). Möchten Sie es als Zeichenkette behandelt haben, setzen Sie Anführungszeichen, z. B. "no".
Übrigens – Warum sich YAML als Konfigurationsformat durchgesetzt hat
YAML (YAML Ain't Markup Language) ist ein 2001 entstandenes Datenserialisierungsformat. Da es keine schließenden Tags benötigt und wesentlich einfacher aussieht als XML, hat es sich seit den 2010er-Jahren als Standard für Infrastruktur-Konfigurationsdateien etabliert – Docker Compose, GitHub Actions und Kubernetes-Manifeste setzen alle darauf.
Das Designprinzip "Struktur durch Einrückung" ist für Menschen zwar gut lesbar, aber auch fehleranfällig: Beim Kopieren und Einfügen geht die Einrückung leicht verloren. Insbesondere das Mischen von Tabulatoren und Leerzeichen führt bei vielen Parsern dazu, dass stillschweigend eine falsche Struktur erzeugt wird, ohne dass ein Fehler gemeldet wird – eine häufige Quelle unbeabsichtigter Konfigurationsfehler.
Es gibt auch eine bekannte Falle namens "Norwegen-Problem": Schreibt man den Ländercode no ohne Anführungszeichen, interpretieren ihn viele YAML-Implementierungen als den Booleschen Wert false. Unterschiede zwischen YAML 1.1 und 1.2 darüber, welche Zeichenketten als boolesche Werte gelten, sind ebenfalls eine häufige Ursache für Kompatibilitätsprobleme zwischen Implementierungen.