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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 &name definierte Inhalte an anderer Stelle mit *name wiederverwendet 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 no oder yes als boolesche Werte statt als einfache Zeichenketten interpretiert werden.

Häufig gestellte Fragen

YAML eignet sich gut für Konfigurationsdateien, die von Menschen manuell bearbeitet und geprüft werden (CI-Konfigurationen, Kubernetes-Manifeste usw.), da es Kommentare unterstützt und sich natürlicher lesen lässt. JSON eignet sich besser für die Kommunikation zwischen Programmen, etwa API-Antworten, da es weniger mehrdeutig ist und schneller geparst wird.

Die YAML-Spezifikation verbietet die Verwendung von Tabulatoren zur Einrückung. Die meisten Parser behandeln dies als Syntaxfehler und brechen die Verarbeitung ab. Am sichersten ist es, den Editor so einzustellen, dass Tabulatoren automatisch in Leerzeichen umgewandelt werden.

Nein. Dieses Tool konzentriert sich auf die "gebräuchliche Teilmenge", die typischerweise in Docker Compose, GitHub Actions und ähnlichen Dateien verwendet wird (Mappings, Listen, Inline-Flow-Collections und einfache Skalartypen), und unterstützt keine fortgeschrittenen Funktionen wie Anker, Aliase, mehrere Dokumente oder Block-Skalare (|/>).

Das ist eine bekannte Falle: Schreibt man 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".
Tool-kun

Ü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.