YAML в TOML

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

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

Вывод

Справка

Где YAML и TOML пересекаются, а где нет

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

Конвертер YAML в TOML наиболее полезен при переносе конфигурации из предпочитаемого формата одного инструмента в формат другого: например, перенос манифеста Kubernetes в фрагмент pyproject.toml или переформулирование описи Ansible в таблицу Cargo [dependencies].

Что сохраняется при преобразовании

Отображения (key: value в YAML) становятся таблицами TOML или парами ключ/значение в зависимости от контекста. Последовательности становятся встроенными массивами или заголовками [[array.of.tables]]. Скаляры сохраняются, пока они чисто отображаются: строки, целые числа, числа с плавающей точкой, логические значения и даты ISO.

Что не сохраняется

Якоря и псевдонимы YAML выравниваются при разборе; преобразованный TOML содержит конкретное значение в каждой точке псевдонима, что нужно большинству потребителей. Теги YAML !!binary не сохраняются, потому что в TOML нет эквивалента. Комментарии удаляются намеренно — ни один из форматов не гарантирует сохранения при обратном преобразовании.

Советы по рабочему процессу

Перед фиксацией преобразованного TOML запустите TOML-линтер вашего проекта (taplo, toml-check и др.). Конвертер только переводит синтаксис, а не стиль; линтер замечает кавычки, отступы и проблемы с порядком ключей, которые конвертер не может обнаружить.

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

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

Обрабатывает ли конвертер якоря YAML?
Да. Якоря (`&name value`) и псевдонимы (`*name`) раскрываются при разборе, поэтому TOML содержит разрешённое значение в каждой точке псевдонима. Исходные имена якорей не сохраняются.
Сохранятся ли комментарии в YAML?
Нет. Комментарии YAML удаляются каждым основным парсером. Добавьте комментарии вручную в TOML при необходимости.
Может ли конвертер обрабатывать многодокументные файлы YAML?
Нет. Просмотрщик рассматривает каждую загрузку как один документ. Используйте специализированный инструмент для многодокументных файлов.
Поддерживает ли TOML многострочные строки?
Да. Конвертер выдаёт тройные кавычки базовых строк TOML для любого скаляра YAML, содержащего переводы строк, поэтому читаемость сохраняется.
Что насчёт данных YAML `!!binary`?
В TOML нет эквивалента для двоичных блобов base64. Конвертер предупреждает и пропускает эти значения, чтобы избежать тихого искажения.
Загружается ли мой YAML?
Нет. Разбор выполняется локально через js-yaml, а вывод TOML генерируется локально через smol-toml. Ничего не отправляется на сервер.