Was dieses Werkzeug tut
Es rückt neu ein. Es schreibt nicht um.
# Produktionsdatenbank — vor Änderungen die Rufbereitschaft fragen
db:
host: db.example.com # manuelle Umschaltung
port: 5432
Zwei Leerzeichen Einrückung, und alles andere genau so, wie Sie es geschrieben haben: der Kommentar über db, der nach host, der Anführungsstil jedes Skalars.
Der naheliegende Weg verliert Ihre Kommentare
Der naheliegende Weg, einen YAML-Formatierer zu schreiben, ist, die Datei als Wert zu parsen und den Wert zurückzuschreiben. Er ist auch falsch, auf zwei Arten, die keine Spur hinterlassen.
Jeder Kommentar verschwindet. Ein Wert hat keine Kommentare; die leben im Dokument, nicht in den Daten. Eine Konfigurationsdatei, die jemand dokumentiert hat — warum dieses Timeout, wen anrufen, was kaputtgeht — kommt stumm zurück, und die Ausgabe ist gültiges YAML, also sagt nichts, was verloren ging.
Anker werden aufgelöst. Dies:
base: &defaults
restart: always
logging: json
web:
<<: *defaults
worker:
<<: *defaults
wird zu drei Kopien desselben Blocks, länger als die Eingabe, die Verknüpfung dahin. Wer als Nächstes restart ändert, muss alle drei finden.
Dieser Formatierer behält das Dokument und ändert nur dessen Anordnung.
Mehrdeutige Werte bleiben unangetastet
country: NO bleibt country: NO.
Ein YAML-1.2-Leser sieht die Zeichenkette NO; ein YAML-1.1-Leser — PyYAML — sieht den Wahrheitswert falsch. Anführungszeichen würden die Frage entscheiden, und diese Entscheidung steht dem Autor zu, nicht einem Formatierer: eine für PyYAML geschriebene Datei mag sehr wohl falsch gemeint haben.
Die Umwandlungswerkzeuge setzen dort Anführungszeichen, und zu Recht: sie gehen von einem Wert aus, von dem sie wissen, dass er eine Zeichenkette ist. Ein Formatierer geht von einer Datei aus, und die sagt es nicht.
Mehrere Dokumente in einer Datei
--- trennt YAML-Dokumente, und eine Datei darf beliebig viele enthalten. Jedes wird an Ort und Stelle formatiert, die Trenner bleiben. Das ist die Form der meisten Kubernetes-Manifeste: ein Strom, kein Fehler.
Die Einstellungen
Einrückung — zwei Leerzeichen als Vorgabe, oder was Sie wählen.
Schlüssel sortieren — alphabetisch, rekursiv, wobei jeder Kommentar dem Eintrag folgt, an dem er hing. Nützlich, um zwei auseinandergelaufene Dateien zu vergleichen; lassen Sie es aus, wenn die Reihenfolge Ihrer Schlüssel etwas bedeutet — in einer Konfigurationsdatei tut sie das oft.
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.