100 % lokal — Ihre Daten verlassen nie Ihren Browser

YAML-Formatter — Kommentare und Anker bleiben

YAML neu einrücken, ohne dass sich der Inhalt verschiebt. Ihre Kommentare und Anker kommen durch — die Datei bleibt die, die Sie committen wollten.

Sofort Privat Null Cookies
Einrückung

YAML-Eingabe

YAML-Ausgabe

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.

Häufige Fragen

Überleben meine Kommentare?
Ja — darum geht es auf dieser Seite. Ein Formatierer, der das Dokument als Wert liest und den Wert zurückschreibt, **löscht jeden Kommentar**, und das Ergebnis ist gültiges YAML, also warnt Sie nichts. Dieser behält das Dokument selbst und ändert nur dessen Anordnung.
Was wird aus meinen Ankern und Merge-Schlüsseln?
Sie bleiben, wie geschrieben. `base: &defaults` und `<<: *defaults` kommen unverändert zurück, weiterhin verknüpft. Sie aufzulösen kopierte den Block in jede Verwendung, machte die Datei länger als zuvor und ließe Ihnen zwei Stellen zum Ändern statt einer.
Kann ich eine Datei mit mehreren Dokumenten formatieren?
Ja. `---` trennt sie, jedes wird an Ort und Stelle formatiert, die Trenner bleiben. Das zählt, weil ein Kubernetes-Manifest meist genau das ist — und bisher rundweg abgelehnt wurde.

Ähnliche Konverter