Was der YAML Formatter macht
YAML steckt hinter Docker-Compose-Dateien, Kubernetes-Manifesten, GitHub-Actions-Workflows, Ansible-Playbooks und vielen App-Konfigurationen. Seine Struktur ergibt sich aus der Einrückung, ein einziges falsch gesetztes Leerzeichen kann also die Bedeutung einer Datei ändern oder ein Deployment stoppen. Dieses Tool schreibt dein YAML mit einheitlicher Einrückung und einheitlichen Abständen neu und prüft es mit einem strengen Parser. So zeigen sich Probleme hier statt in deiner Pipeline.
Es hat zwei Aktionen:
- Formatieren vereinheitlicht die Einrückung, die Leerzeichen nach Doppelpunkten und Bindestrichen und die Abstände in
[ ]und{ }. - Validieren parst die Datei und meldet den ersten Fehler oder, wenn alles gültig ist, eine kurze Zusammenfassung.
So nutzt du ihn
- Füge YAML in das linke Feld ein. Es wird sofort beim Einfügen formatiert. Du kannst auch Datei öffnen für
.yaml- und.yml-Dateien nutzen oder Beispiel für ein Beispiel. - Wähl eine Einrückung von 2 oder 4 Leerzeichen und eine Zeilenbreite.
- Schalte Einfache Anführungszeichen ein, wenn dein Projekt
'text'statt"text"bevorzugt. - Klicke auf Formatieren oder Validieren. Strg+Enter führt die letzte Aktion erneut aus.
- Klicke auf Kopieren oder auf Herunterladen, um eine
.yaml-Datei zu speichern.
Vorher und nachher
Eine Docker-Compose-Datei mit ungleichmäßigen Abständen und 4 Leerzeichen Einrückung:
version: "3.8"
services:
web:
image: "nginx:latest"
ports:
- "80:80"
environment:
- DEBUG=false
db:
image: postgres:16
Nach Formatieren mit 2 Leerzeichen:
version: "3.8"
services:
web:
image: "nginx:latest"
ports:
- "80:80"
environment:
- DEBUG=false
db:
image: postgres:16
Flow-Collections bekommen gleichmäßige Abstände. tags: [ api, v2 ] und limits: {cpu: 1, memory: 512} werden zu:
tags: [api, v2]
limits: { cpu: 1, memory: 512 }
Kommentare überleben. Die zusätzlichen Leerzeichen vor einem Kommentar am Zeilenende werden aufgeräumt, der Kommentar bleibt aber in seiner Zeile:
# Database settings
db:
host: localhost # local only
port: 5432
Mit Einfache Anführungszeichen an wird aus name: "web" ein name: 'web'. Ein String mit Apostroph, etwa "it's here", behält seine doppelten Anführungszeichen, damit nichts escaped werden muss.
Fehler, die der Validator findet
YAML-Parser in verschiedenen Tools sind unterschiedlich streng. Dieser markiert Probleme, die manche Tools durchlassen. Echte Meldungen des Tools (der Text kommt vom YAML-Parser und bleibt Englisch, nur Zeile und Spalte davor sind deutsch):
| Problem | Meldung |
|---|---|
| Derselbe Schlüssel zweimal | Zeile 3, Spalte 1: Map keys must be unique |
| Ein Tab zur Einrückung | Zeile 2, Spalte 1: Tabs are not allowed as indentation |
| Eine Zeile ein Leerzeichen zu weit eingerückt | Zeile 2, Spalte 9: Nested mappings are not allowed in compact mappings |
Die Prüfung auf doppelte Schlüssel ist die wichtigste. In einer Datei wie name: web, port: 80, name: api behalten viele Loader ohne Warnung nur das letzte name. Klicke auf In der Eingabe zeigen, um zur Zeile zu springen.
Bei einer gültigen Datei mit zwei Dokumenten, getrennt durch ---, meldet Validieren: Gültiges YAML. 2 Dokumente.
Tipps und Grenzen
- Der Formatter sortiert keine Schlüssel um und ändert keine Werte.
yes,onund010bleiben so, wie du sie geschrieben hast. - Lange Strings werden nicht neu umbrochen. Gefaltete (
>) und wörtliche (|) Blöcke behalten ihren Inhalt. - Anker und Aliase (
&name,*name) bleiben so, wie sie geschrieben wurden. - Für YAML gibt es keine gebräuchliche minifizierte Form, deshalb fehlt die Schaltfläche Minifizieren. Wenn du kompakte Daten brauchst, wandle sie mit dem Konverter JSON in YAML in Richtung YAML zu JSON um.
- Umlaute in Werten sind kein Problem, solange die Datei als UTF-8 gespeichert ist. Ein Wert wie
stadt: Münchenbraucht keine Anführungszeichen.
Andere Wege, YAML zu formatieren
VS Code. Die YAML-Erweiterung von Red Hat ergänzt Formatierung und Schemaprüfung für Dateien wie Kubernetes-Manifeste. Führe nach der Installation Dokument formatieren aus.
yq. Die Go-Version von yq (von Mike Farah) liest YAML und schreibt es neu. yq '.' file.yaml gibt die Datei in ihrem eigenen einheitlichen Stil zurück, und dasselbe Tool kann Werte abfragen und bearbeiten.
Prettier. Wenn dein Projekt schon Prettier nutzt, formatiert es .yaml- und .yml-Dateien nach denselben Regeln wie diese Seite.
yamllint. Ein Python-Tool, das Stil und Syntax prüft, ohne die Datei neu zu schreiben, praktisch in der CI.
Ähnliche Tools
Um JSON in YAML umzuwandeln oder zurück, nimm den Konverter JSON in YAML. Für JSON-Dateien nimm den JSON Formatter. Für XML-Konfigurationen wie Maven- oder Android-Dateien nimm den XML Formatter.