Zum Inhalt springen
Case Converter Online
de

YAML formatieren und validieren

Füge YAML ein, um Einrückung und Abstände zu korrigieren, oder prüf es vor dem Deployment auf Fehler. Kommentare bleiben erhalten, und Probleme werden mit Zeile und Spalte gemeldet.

Füge YAML ein oder klicke auf Beispiel. Mit Strg+Enter formatierst du. Alles läuft in deinem Browser.

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

  1. 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.
  2. Wähl eine Einrückung von 2 oder 4 Leerzeichen und eine Zeilenbreite.
  3. Schalte Einfache Anführungszeichen ein, wenn dein Projekt 'text' statt "text" bevorzugt.
  4. Klicke auf Formatieren oder Validieren. Strg+Enter führt die letzte Aktion erneut aus.
  5. 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, on und 010 bleiben 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ünchen braucht 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.

YAML Formatter: Fragen und Antworten

Warum kann ich YAML nicht mit Tabs einrücken?

Die YAML-Spezifikation erlaubt keine Tabulatoren zur Einrückung, nur Leerzeichen. Deshalb bietet das Menü Einrückung 2 oder 4 Leerzeichen und keine Option für Tabs, und deshalb meldet der Validator Tabs als Fehler.

Bleiben meine Kommentare erhalten?

Ja. Kommentare bleiben, wo sie sind. Der Formatter ändert nur Abstände, Einrückung und Zeilenaufteilung. Schlüssel und Werte behalten ihre Reihenfolge.

Findet der Formatter doppelte Schlüssel?

Ja. Wenn derselbe Schlüssel in einem Mapping zweimal vorkommt, bekommst du einen Fehler wie Map keys must be unique, mit der Zeile des zweiten Schlüssels. Viele YAML-Tools behalten stillschweigend nur den letzten Wert, was einen Fehler verstecken kann.

Kommt er mit Dateien aus mehreren Dokumenten klar?

Ja. Dokumente, die durch --- getrennt sind, werden zusammen formatiert, und Validieren sagt dir, wie viele Dokumente es gefunden hat.

Ist das sicher für Kubernetes-Secrets oder CI-Dateien?

Das YAML wird in deinem Browser verarbeitet und nicht hochgeladen. Trotzdem solltest du keine echten Secrets in eine Webseite einfügen, wenn die Richtlinien deines Unternehmens das verbieten.

Mehr Tools für Code und Daten

Alle Tools ansehen