Zum Inhalt springen
100% lokal

YAML-Anker-Expander

YAML-Anker, Aliase und Merge-Keys durch ihren vollständigen Inhalt ersetzen.

Eingabe
Ausgabe

YAML-Anker-Expander

Geben Sie ein YAML-Dokument ein, das Anker (&name), Aliase (*name) oder Merge-Keys (<<:) nutzt, und dieses Tool ersetzt jede Referenz durch den vollständigen Inhalt, auf den sie verweist. Das Ergebnis ist reines, eigenständiges YAML ohne Anker, Aliase oder Merge-Keys — nützlich, wenn Sie eine Konfigurationsdatei an ein Tool übergeben müssen, das YAML's Wiederverwendungssyntax nicht versteht, oder wenn Sie einfach sehen möchten, wie sich eine Datei mit vielen Ankern wirklich ausbreitet.

Merge-Keys werden mit der gleichen Priorität aufgelöst, die YAML selbst verwendet: Ein Schlüssel, der explizit in einem Mapping geschrieben wird, hat immer Vorrang vor einem, das durch einen Merge eingezogen wird. Wenn ein Mapping mehrere Quellen zusammenführt (<<: [*a, *b]), gewinnt die frühere Quelle bei einer Kollision. Verkettete Merges — ein Mapping, das ein anderes Mapping zusammenführt, das selbst ein drittes zusammenführt — werden bis zum Ende verfolgt. Mehrere Dokumente in einer Eingabe, getrennt durch ---, werden jeweils unabhängig voneinander erweitert und mit dem gleichen Trennzeichen wieder zusammengefügt.

Die Optionen steuern die Form der Ausgabe, nicht, was erweitert wird. »Schlüsselreihenfolge beibehalten« behält die ursprüngliche Reihenfolge; deaktivieren Sie dies, um Schlüssel in jedem Mapping alphabetisch zu sortieren. »String-Format« kann jeden String-Wert mit doppelten oder einfachen Anführungszeichen erzwingen, ohne Zahlen, Boolesche Werte oder Nulls zu ändern. »Ungenutzte Anker entfernen« löscht einen Top-Level-Schlüssel, der nur existiert, um einen Anker zu definieren, den niemand referenziert — tote Gerüste, die sich in handgeschriebenen YAML-Dateien im Laufe der Zeit ansammeln. »Hervorhebungsmodus« tauscht die erweiterte YAML gegen einen kurzen Bericht aus, der jeden Anker, wo er definiert ist, und jede Zeile auflistet, die ihn über einen Alias oder einen Merge nutzt — praktisch, um eine Datei vor dem Flachdrücken zu verstehen.

Alles läuft lokal in Ihrem Browser ab — Ihre YAML wird niemals hochgeladen oder an einen Server gesendet, was wichtig ist, da Anker und Merge-Keys in Dateien häufig sind, die Umgebungskonfigurationen, CI-Pipelines oder Kubernetes-Manifeste enthalten. Kopieren Sie das Ergebnis, laden Sie es als .txt-Datei herunter, oder schicken Sie es direkt an ein anderes Tool wie YAML zu JSON.

Häufige Fragen

Was genau zählt hier als Referenz?
Drei YAML-Funktionen: Ein Anker (&name) markiert einen Knoten, ein Alias (*name) verwendet ihn anderswo wieder, und ein Merge-Key (<<: *name) mischt ein ankergebundenes Mapping in ein anderes. Alle drei werden durch den tatsächlichen Inhalt ersetzt.
Gewinnt explizite Daten über zusammengeführte Daten?
Ja. Wenn ein Mapping einen Schlüssel zusammenführt, den es auch direkt setzt, wird der eigene Wert des Mappings beibehalten — entsprechend dem Verhalten von YAML-Merge-Keys in jedem Standard-Parser.
Was passiert mit einem zirkulären Anker, wie einem, der auf sich selbst verweist?
Das Tool meldet stattdessen einen Fehler, da eine echte zirkuläre Struktur keine endliche YAML-Darstellung hat. Entfernen Sie die Selbstreferenz und führen Sie sie erneut aus.
Kann es eine Datei mit mehreren --- Dokumenten verarbeiten?
Ja. Jedes Dokument wird unabhängig voneinander erweitert — Anker in einem Dokument sind für ein anderes nicht sichtbar — und die Ausgabe behält die gleichen --- Trennzeichen.
Wird meine YAML irgendwo hochgeladen?
Nein. Die Erweiterung läuft vollständig in Ihrem Browser mit lokalem YAML-Parsing ab — Ihre Datei verlässt niemals Ihr Gerät.