Конвертировать TOML в формат YAML — Numio
Преобразует TOML-документ в YAML. Таблицы становятся вложенными отображениями, [[array of tables]] — списками отображений, а кавычки добавляются только там, где они нужны YAML (например, "2021" остаётся строкой).
Перенос настроек из TOML-конфигурации (Cargo, pyproject, Hugo) в инструмент на YAML, например CI-workflow или манифест Kubernetes.
TOML
YAML
Когда пригодится
- Перенос настроек из TOML-конфигурации (Cargo, pyproject, Hugo) в инструмент на YAML, например CI-workflow или манифест Kubernetes.
- Чтение длинного TOML-файла с точечными и вложенными таблицами в виде дерева с отступами.
Как пользоваться
- Вставьте TOML-документ в левый редактор или откройте файл в кодировке UTF-8 кнопкой загрузки файла.
- Если появилась ошибка, найдите по указанным строке и столбцу дублирующиеся ключи или синтаксические проблемы.
- Проверьте значения даты и времени и значения в кавычках в YAML, затем скопируйте его.
TOML
# Cargo-style manifest
[package]
name = "demo"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
[[bin]]
name = "cli"
path = "src/main.rs"YAML
package:
name: demo
version: 0.1.0
edition: "2021"
dependencies:
serde:
version: "1.0"
features:
- derive
bin:
- name: cli
path: src/main.rsПодробности и ограничения
Комментарии отбрасываются. Дата и время со смещением переводятся в UTC (2024-01-05T10:00:00+09:00 становится 2024-01-05T01:00:00.000Z), и добавляются миллисекунды.
Вывод соответствует YAML 1.2, поэтому строки вроде yes и on записываются без кавычек. Парсеры YAML 1.1 (например, PyYAML) могут прочитать их как булевы значения; при необходимости возьмите их в кавычки вручную.
Локальное время вроде 09:00:00 записывается с миллисекундами (09:00:00.000); локальные даты и дата-время остаются без часового пояса.
Работает в браузере (@iarna/toml, yaml, Prettier); inf и nan становятся .inf и .nan.
FAQ
Сохраняются ли комментарии?
Нет. TOML сначала разбирается в данные, поэтому комментарии и пустые строки теряются. Перенесите важные комментарии вручную.
Как преобразуются [[array of tables]]?
Каждый блок [[bin]] становится одним элементом YAML-списка под bin, как показано в примере.
Почему я получаю "Can't redefine existing key"?
Один и тот же ключ или таблица определены дважды, что TOML запрещает. Ошибка указывает строку и столбец второго определения.