~/tools/yaml/anchors-resolver

YAML

YAML Anchors & Aliases Resolver

Развернуть YAML-якоря и алиасы (&anchor, *ref) в полный документ.

Как это работает

Якоря и ссылки YAML через амперсанд и звездочку это удобный способ не повторять один и тот же блок конфигурации несколько раз, но читать такой файл человеку, незнакомому с этим синтаксисом, неудобно, а некоторые инструменты вообще не поддерживают якоря при импорте. Yaml anchors resolver online разворачивает все ссылки в полностью явный документ без сокращений.

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

Полезно применять при передаче конфига в систему, которая не поддерживает синтаксис якорей YAML, при объяснении сложного конфига коллеге, не знакомому с этой особенностью формата, или просто чтобы увидеть, что на самом деле получается после применения всех ссылок и слияний через двойной символ меньше.

Частые вопросы

Что произойдет с оператором слияния двойное меньше при разворачивании?

Оператор слияния, который подмешивает содержимое одного блока в другой, полностью разворачивается в реальные поля результирующего объекта, в итоговом документе не останется никаких признаков того, что эти поля пришли откуда то через ссылку.

Можно ли потом снова превратить развернутый YAML обратно в компактную версию с якорями?

Нет, обратное сжатие повторяющихся блоков в якоря это отдельная нетривиальная задача, инструмент выполняет только одностороннее разворачивание, свернуть обратно автоматически не получится.

Сохраняется ли структура и порядок полей после разворачивания якорей?

Да, порядок полей и общая структура документа остаются такими же, как если бы вы вручную выписали все значения без использования якорей и ссылок с самого начала.

Зачем вообще может понадобиться разворачивание якорей, если они удобны для написания?

Удобны они для написания и поддержки, но не всегда удобны для чтения человеком со стороны, для отладки, документации или передачи конфига внешней системе полностью явный вид без ссылок часто оказывается практичнее.