Перейти к содержанию

Раскрыватель якорей YAML

Замените якоря, псевдонимы и ключи слияния YAML на полное содержимое, на которое они указывают.

Входные данные
Выходные данные

Раскрыватель якорей YAML

Вставьте YAML-документ, использующий якоря (&name), псевдонимы (*name) или ключи слияния (<<:), и этот инструмент заменит каждую ссылку на полное содержимое, на которое она указывает. Результат — простой, самодостаточный YAML без якорей, псевдонимов или ключей слияния — полезен, когда нужно передать файл конфигурации инструменту, который не поддерживает синтаксис переиспользования YAML, или когда просто хотите узнать, как раскрывается сильно структурированный файл.

Ключи слияния разрешаются с таким же приоритетом, что и в самом YAML: явно указанный ключ в mapping всегда побеждает загруженный через слияние, и когда mapping слияет несколько источников (<<: [*a, *b]), более ранний источник побеждает при конфликте. Цепочки слияния — mapping, который слияет другой mapping, который сам слияет третий — отслеживаются до конца. Несколько документов на входе, разделённых ---, раскрываются независимо и объединяются с тем же разделителем.

Опции контролируют форму вывода, а не то, что раскрывается. «Сохранять порядок ключей» оставляет ключи в исходном порядке; отключение сортирует ключи каждого mapping в алфавитном порядке. «Стиль строк» может принудительно заключить все значения строк в двойные или одиночные кавычки, не трогая числа, логические значения и null. «Удалить неиспользуемые якоря» удаляет верхнеуровневый ключ, существующий только для определения якоря, на который никто не ссылается — мёртвый код, который накапливается в ручных YAML-файлах. «Режим выделения» заменяет раскрытый YAML на краткий отчёт, перечисляющий каждый якорь, где он определён и каждую строку, использующую его через псевдоним или слияние — удобно для понимания файла перед его упрощением. Документ с истинной циклической ссылкой (якорь, ссылающийся сам на себя) выдаёт ошибку вместо раскрытия, так как нет конечного YAML, который его представляет.

Всё работает локально в вашем браузере — ваш YAML никогда не загружается и не отправляется на сервер, что важно, так как якоря и ключи слияния распространены в файлах, содержащих переменные окружения, конвейеры CI или манифесты Kubernetes. Скопируйте результат, загрузите как .txt-файл или отправьте прямо в другой инструмент, например YAML в JSON.

FAQ

Что здесь считается ссылкой?
Три возможности YAML: якорь (&name) отмечает узел, псевдоним (*name) переиспользует его в другом месте, и ключ слияния (<<: *name) смешивает отмеченный mapping в другой. Все три заменяются на фактическое содержимое.
Явно указанные данные побеждают объединённые?
Да. Если mapping объединяет ключ, который он также устанавливает напрямую, сохраняется значение самого mapping — как ведёт себя слияние ключей YAML в каждом стандартном парсере.
Что происходит с циклическим якорем, например, который ссылается сам на себя?
Инструмент выдаёт ошибку вместо раскрытия, так как истинно циклическая структура не имеет конечного YAML-представления. Удалите циклическую ссылку и запустите снова.
Может ли он обрабатывать файл с несколькими документами, разделёнными ---?
Да. Каждый документ раскрывается отдельно — якоря в одном документе невидимы для другого — и вывод сохраняет те же разделители ---.
Мой YAML загружается куда-нибудь?
Нет. Раскрытие работает полностью в вашем браузере, используя локальный парсинг YAML — ваш файл никогда не покидает ваше устройство.