Перейти до вмісту

Розгортач якорів 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 — ваш файл ніколи не залишає вашого пристрою.