100 % lokal — Ihre Daten verlassen nie Ihren Browser

YAML-Validator — die Zeile, wo es stehen bleibt

Prüfen, ob YAML parst: Einrückung, Anführungszeichen, Anker, doppelte Schlüssel. Bleibt es stehen, bekommen Sie die Zeile und wissen, wo Sie suchen.

Sofort Privat Null Cookies

YAML-Eingabe

Result-Ausgabe

Was dieses Werkzeug prüft

Dass das Dokument parst — was in YAML mehr umfasst, als es klingt:

  • die Einrückung ist konsistent und aus Leerzeichen gebaut;
  • Anführungszeichen sind geschlossen, Block-Skalare (|, >) korrekt eingerückt;
  • jeder Alias *name hat einen Anker &name, auf den er zeigt;
  • keine Zuordnung trägt denselben Schlüssel zweimal;
  • ----Trenner ergeben vollständige Dokumente.

Besteht es, erhalten Sie die Form der Wurzel und die Größe. Sonst die Meldung des Parsers mit Zeile und Spalte — und YAML-Parser sind ungewöhnlich gut darin zu sagen, wo.

Validator, Prüfer, Parser — und .yml gegen .yaml

Syntaxprüfer, Formatprüfer, Parser, Tester, Validator: fünf Namen für eine Frage — parst dieses Dokument? Genau das geschieht beim Einfügen.

.yml und .yaml sind dieselbe Sprache, keine zwei Varianten. Die Endung ist Gewohnheit: Das YAML-Projekt bittet um .yaml, während eine Generation von Werkzeugen zuerst .yml schrieb und nie wechselte. Docker Compose liest beide, GitHub Actions liest beide, und diese Seite ebenso — nichts in der Datei verrät, unter welcher Schreibweise sie ankam.

Tabulatoren sind keine Einrückung

Ein Tabulator ist acht Spalten breit, oder vier, oder zwei, je nachdem, wer hinsieht. Eine aus Tabulatoren gebaute Einrückung hat daher keine festgelegte Bedeutung, und in YAML ist die Einrückung die Struktur. Die Spezifikation verbietet sie; dieses Werkzeug auch.

In einem zitierten Skalar ist ein Tabulator nur ein Zeichen und völlig in Ordnung. Nur der linke Rand ist das Problem.

Doppelte Schlüssel sind ein Fehler

port: 8080
host: example.com
port: 3000

Die Spezifikation verlangt eindeutige Schlüssel in einer Zuordnung. Viele Parser ignorieren das und behalten den letzten: so läuft eine Konfigurationsdatei stillschweigend auf einem Wert, den Sie vergessen hatten, zweimal geschrieben zu haben. Hier ist es ein Fehler, mit der Zeile des zweiten.

Ein Strom mehrerer Dokumente ist gültig

--- trennt Dokumente, und eine Datei darf beliebig viele enthalten. Der Bericht sagt, wie viele. Ein Kubernetes-Manifest ist meist ein Strom, und ein Strom ist kein Syntaxfehler.

Was es nicht prüft

Ob das Dokument etwas bedeutet.

Eine Datei kann perfektes YAML und eine kaputte Compose-Datei sein: ein Dienst ohne Image, ein Schlüssel enviroment geschrieben, ein Port zitiert, wo eine Zahl erwartet war. Nichts davon ist Syntax, und nichts hier wird es fangen.

Es entscheidet auch nicht, was ein blankes Wort bedeutet. yes ist für einen YAML-1.2-Leser die Zeichenkette yes und für einen 1.1-Leser der Wahrheitswert wahr, und beide lesen gültiges YAML — ein Unterschied, den dieser Validator nicht für Sie auflösen kann, weil er davon abhängt, wer die Datei als Nächstes liest.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Warum werden Tabulatoren als Einrückung abgelehnt?
Weil ein Tabulator keine festgelegte Breite hat: eine aus Tabulatoren gebaute Einrückung hat also keine festgelegte Bedeutung — und Einrückung ist in YAML die gesamte Struktur. Die Spezifikation verbietet sie rundweg. Ein Tabulator innerhalb eines zitierten Werts ist unproblematisch; nur die Einrückung zählt, daher nennt die Meldung Zeile und Spalte.
Warum ist ein doppelter Schlüssel ein Fehler und nicht „der letzte gewinnt“?
Weil die YAML-Spezifikation eindeutige Schlüssel verlangt, und „der letzte gewinnt“ die Art ist, wie eine Konfiguration stillschweigend die Hälfte des Geschriebenen ignoriert. Setzt eine Datei oben `port: 8080` und unten `port: 3000`, wollen Sie das erfahren und nicht einen Nachmittag rätseln, welcher läuft.
Prüft das meine docker-compose- oder Kubernetes-Datei?
Nein. Es prüft, dass das YAML parst. Eine Datei kann fehlerfreies YAML und eine unbrauchbare Compose-Datei sein: ein Dienst ohne Image, ein falsch geschriebener Schlüssel, ein Port in Anführungszeichen, wo eine Zahl erwartet war. Schema-Prüfung braucht das Schema, und das ist ein anderes Werkzeug.

Ähnliche Konverter