Werkzeuge
Leitfäden

YAML-Validator & Formatierer

Formatierung

YAML mit js-yaml validieren, normalisieren oder komprimieren. Bereinigt Einrückung und Anführungszeichen und trennt Mehrfachdokumente (---). Reine YAML-Verarbeitung – keine Formatkonvertierung.

100 % clientseitig Ohne Backend

Remote-URLs werden nicht abgerufen; fügen Sie Ihr JSON direkt ein.

Eingabe
Ausgabe
Fügen Sie links YAML ein und wählen Sie Formatieren oder Minifizieren.
Auf dieser Seite

Was ist ein YAML-Formatierer?#

Ein YAML-Formatierer nimmt eine Konfigurationsdatei, die abgetrieben ist — Tabulatoren vermischt mit Leerzeichen, inkonsistente Einrückungsschritte, mal mit mal ohne Anführungszeichen, ein Anker, den jemand definiert und nie wiederverwendet hat — und normalisiert sie in eine saubere, vorhersagbare Form. Außerdem fängt er das ein, wofür YAML berüchtigt ist: ein Dokument, das gut aussieht und leise etwas anderes bedeutet, weil YAML whitespace-sensitiv ist und voller impliziter Regeln steckt, was ein nacktes Wort bedeutet.

Diese Seite parst Ihr YAML und gibt es über js-yaml kontrolliert neu aus. Formatieren rückt mit dem von Ihnen gewählten Schritt neu ein (2 oder 4 Leerzeichen), schaltet Zeilenfaltung ab, sodass jeder Wert auf seiner eigenen Zeile steht, und expandiert alle Anker und Aliase zu schlichtem, wiederholtem Inhalt, damit die Ausgabe vollständig eigenständig ist. Minifizieren gibt dieselben Daten in Flow-Notation neu aus — {a: 1, b: [2, 3]} — was die kompakte Form ist, die YAML kennt, da YAML seinen Whitespace nicht einfach löschen kann wie JSON oder CSS. Welchen Modus Sie auch wählen, das Dokument wird zuerst geparst, sodass ein Tabulator, wo ein Leerzeichen stehen sollte, oder ein Doppelpunkt ohne folgendes Leerzeichen mit Zeile und Spalte gemeldet wird, statt leise die falsche Datenstruktur zu erzeugen.

Verwendung#

  1. Fügen Sie Ihr YAML in die Eingabe-Fläche links ein. Der Platzhalter zeigt ein minimales Dokument, oder klicken Sie auf Beispiel.
  2. Wählen Sie eine Modus-Schaltfläche auf der Werkzeugleiste:
    • Formatieren — neu einrücken, Zeilenfaltung deaktivieren, Anker/Aliase expandieren und jede Collection im Block-Stil ausgeben.
    • Minifizieren — jede Collection im Flow-Stil auf so wenigen Zeilen wie möglich ausgeben. Die Einrückung wird irrelevant, weil Flow-Collections explizit sind.
  3. Wählen Sie im Modus Formatieren eine Einrückung: 2 oder 4 Leerzeichen.
  4. Wählen Sie optional einen Anführungszeichen-Stil: Auto (nur quotieren, wenn ein Skalar es tatsächlich braucht — die Voreinstellung), Einfach oder Doppelt. Das normalisiert das Anführungszeichen-Zeichen bei Skalaren, die zwingend gequotet werden müssen; es erzwingt niemals Anführungszeichen bei nackten Werten, die sie nicht brauchen.
  5. Lesen Sie das Ergebnis in der Ausgabe-Fläche. Die Kopfzeile zeigt die Ausgabegröße; verwenden Sie Kopieren, um es zu übernehmen. Leeren setzt beide Flächen zurück.

Wenn das Parsen scheitert, meldet die Statusleiste Zeile und Spalte des Problems — YAML-Fehler von js-yaml tragen eine Position, und diese Seite gibt sie direkt aus.

Eckpunkte#

  • Formatieren und Minifizieren aus demselben Parse. Beide Modi validieren das Dokument vorab, sodass ein Strukturfehler einmal mit Position gemeldet wird, unabhängig davon, welche Schaltfläche Sie gedrückt haben.
  • Anker expandiert. &anchor- / *alias-Referenzen werden aufgelöst und inline ausgeschrieben (noRefs), sodass die Ausgabe nie von einem Namen abhängt, der drei Bildschirme früher definiert wurde. Das Ergebnis ist ein eigenständiges Dokument, das Sie jedem übergeben können.
  • Keine Zeilenfaltung. Lange Werte werden nicht an einer Spaltengrenze umbrochen (lineWidth: -1), sodass jeder Wert exakt eine Zeile belegt — leichter zu diffen und leichter zu lesen.
  • Optionale Anführungszeichen-Normalisierung. Wählen Sie einfache oder doppelte Anführungszeichen, um das Anführungszeichen-Zeichen dokumentenweit konsistent zu machen, oder belassen es bei Auto, sodass nur die Werte quotiert werden, die es tatsächlich benötigen.
  • Multi-Dokument-fähig. Eingaben, die durch --- getrennt sind, werden als mehrere Dokumente geparst und mit intakten ----Trennern neu ausgegeben — praktisch für Kubernetes-Manifeste und ähnliche Multi-Dokument-Dateien.
  • Schützt vor YAML-Bomben. Eine Begrenzung der Verschachtelungstiefe hindert pathologisch tief verschachtelte Dokumente daran, sich zu etwas Gefährlichem aufzublähen.
  • Streng clientseitig, mit einem Web Worker für Eingaben über 1 MB, damit die Seite ansprechend bleibt.

Konkretes Beispiel#

Eine Dienstkonfiguration mit einem wiederverwendeten Anker und leicht ungleichmäßigem Stil:

Eingabe:

service:
  name: &name "api-gateway"
  host:   example.com
  replicas: 3
  id: *name
logging:
  level: info
  outputs: [{name: stdout}, {name: file}]

Klicken Sie auf Formatieren mit 2 Leerzeichen und Auto-Anführungszeichen:

service:
  name: api-gateway
  host: example.com
  replicas: 3
  id: api-gateway
logging:
  level: info
  outputs:
    - name: stdout
    - name: file

Zwei Dinge sind erkennbar passiert. Der Anker &name und der Alias *name wurden beide zum literalen Wert api-gateway aufgelöst, sodass id nun als nackter Wert dasteht und das Dokument nicht mehr vom Anker abhängt. Und die Flow-Liste [{name: stdout}, {name: file}] wurde als Block-Liste umgeschrieben, ein Eintrag pro Zeile — viel einfacher zu überblicken und gegen eine andere Version zu diffen. Klicken Sie auf Minifizieren auf dieselbe Eingabe und dieselben Daten kommen in Flow-Form zurück:

service: {name: api-gateway, host: example.com, replicas: 3, id: api-gateway}
logging: {level: info, outputs: [{name: stdout}, {name: file}]}

Jede Collection ist jetzt inline. Die Bytezahl sinkt, weil Einrückung und Zeilenumbrüche verschwinden, aber die Bedeutung ist identisch — und genau das sollte Minifizieren für ein Whitespace-sensitives Format bedeuten.

FAQ#

Wo sind meine Kommentare geblieben?#

YAML-Round-Tripping durch js-yaml parst Kommentare und verwirft sie — es gibt keinen kommentarerhaltenden Re-Dumper in der Bibliothek. Kommentare werden beim Parsen toleriert (sie verursachen nie einen Fehler), erscheinen aber nicht in der Ausgabe. Wenn Kommentare wichtige Kontextinformationen tragen, bewahren Sie Ihre Originaldatei als Quelle der Wahrheit auf und betrachten Sie die Ausgabe dieses Werkzeugs als kanonische Maschinenform.

Was ist der Unterschied zwischen Formatieren und Minifizieren bei YAML?#

Formatieren schreibt das Dokument in sauberem Block-Stil um: verschachtelte Mappings und Sequenzen mit dem von Ihnen gewählten Einrückungsschritt, ein Wert pro Zeile, keine Faltung. Minifizieren schreibt dieselben Daten im Flow-Stil um: {key: value}- und [a, b]-Collections auf einer einzigen Zeile. Beide parsen zunächst identisch; sie unterscheiden sich nur darin, wie die Daten wieder serialisiert werden.

Worin unterscheidet sich das vom YAML/JSON-Konverter?#

Dieses Werkzeug ist YAML rein, YAML raus — es normalisiert oder verdichtet ein YAML-Dokument und gibt YAML zurück. Der YAML/JSON-Konverter auf dieser Seite übersetzt zwischen den beiden Formaten. Verwenden Sie diese Seite, wenn Sie dasselbe Format haben wollen, nur besser geformt; verwenden Sie den Konverter, wenn Sie tatsächlich JSON wollen.

Wird mein YAML irgendwo hochgeladen?#

Nein. js-yaml ist in die Seite gebündelt und läuft in Ihrem Browser. Bei Eingaben über 1 MB findet das Parsen innerhalb eines Web Workers statt, aber weiterhin lokal — nichts verlässt Ihr Gerät.