TOML в YAML

Переведите документы TOML в YAML с необязательной сортировкой ключей и управлением отступами.

Переведите документы TOML в YAML с необязательной сортировкой ключей и управлением отступами. Переведите документы TOML в YAML с необязательной сортировкой ключей и управлением отступами.

Вывод

Справка

Зачем переходить между TOML и YAML

Оба формата нацелены на конфигурационные файлы, редактируемые человеком, но экосистемы вокруг них разные. TOML — стандарт для пакетов Python (pyproject.toml), Rust (Cargo.toml), рабочих процессов GitHub и многих CLI-инструментов. YAML — стандарт для Kubernetes, Ansible, Docker Compose, GitHub Actions (старый синтаксис) и многих CI-систем.

Иногда нужно выразить одну и ту же конфигурацию в обоих форматах: переиспользовать фрагмент pyproject.toml внутри плейбука Ansible или переписать ConfigMap Kubernetes в блок зависимостей Cargo.toml. Конвертер TOML→YAML делает перевод механическим.

Что переживает преобразование

Отображения, последовательности, скаляры (строки, целые числа, числа с плавающей точкой, логические значения, даты ISO), встроенные таблицы и точечные ключи переводятся чисто. Многострочные строки выводятся как блочные скаляры YAML, сохраняя визуальную разметку, выбранную автором TOML.

Что не переживает

Теги YAML (!!str, !!int и т.д.) выводятся только когда базовый тип отличается от умолчательного вывода YAML. На практике выбор парсера совпадает с тем, чего ждёт большинство читателей. Якоря YAML по умолчанию не создаются, поскольку каждое значение TOML полностью самодостаточно; если нужны общие поддеревья, добавьте их вручную.

Советы по работе

После преобразования прогоните YAML через линтер (yamllint, kubeconform), прежде чем коммитить. Конвертер переводит синтаксис, а не стиль: он не знает, задумывали ли вы файл в snake_case или kebab-case, или хотели отступ в 2 или 4 пробела. Ваши соглашения проекта решают это.

Построено вокруг двух библиотек MIT/BSD-3, поставляемых в public/assets: smol-toml для разбора и js-yaml для вывода. Ваш ввод остаётся на этой странице.

Часто задаваемые вопросы

Поддерживает ли конвертер массивы таблиц TOML?
Да. Заголовки `[[name]]` становятся элементами последовательности YAML под ключом `name`, сохраняя порядок таблиц.
Сохранит ли YAML-вывод мои комментарии TOML?
Нет. Комментарии TOML удаляются парсером. При необходимости добавьте комментарии вручную в YAML-вывод.
Как даты TOML представлены в YAML?
Даты и даты-время становятся строками YAML с той же ISO-нотацией. Большинство потребителей YAML разбирают их библиотекой дат своего языка.
А что с встроенными таблицами TOML?
Они становятся вложенными отображениями YAML в одну строку. Некоторые руководства по стилю требуют блочный стиль для читаемости; при необходимости преобразуйте вручную, если линтер жалуется.
Почему вывод использует двойные кавычки вокруг строк?
Одинарные строки YAML запрещают эскейп-последовательности, а обычные скаляры YAML имеют зарезервированные ключевые слова; двойные кавычки — самый безопасный выбор для кругового преобразования произвольного текста.
Мой TOML загружается куда-либо?
Нет. Разбор происходит локально через smol-toml, а вывод YAML — через js-yaml. Ничего на сервер не отправляется.