Converter TOML em YAML — Numio
Converte um documento TOML em YAML. Tabelas viram mappings aninhados, [[array of tables]] viram listas de mappings, e aspas só são adicionadas onde o YAML precisa delas (por exemplo, "2021" continua string).
Levar configurações de um arquivo TOML (Cargo, pyproject, Hugo) para uma ferramenta baseada em YAML, como um workflow de CI ou um manifesto do Kubernetes.
TOML
YAML
Quando usar
- Levar configurações de um arquivo TOML (Cargo, pyproject, Hugo) para uma ferramenta baseada em YAML, como um workflow de CI ou um manifesto do Kubernetes.
- Ler como árvore indentada um arquivo TOML longo com tabelas com pontos e aninhadas.
Como usar
- Cole o documento TOML no editor da esquerda ou use o botão de carregar arquivo para abrir um arquivo UTF-8.
- Se aparecer um erro, use a linha e a coluna informadas para encontrar chaves duplicadas ou problemas de sintaxe.
- Confira datas e horas e valores entre aspas no YAML e depois copie-o.
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.rsDetalhes e limitações
Comentários são descartados. Datas e horas com offset são convertidas para UTC (2024-01-05T10:00:00+09:00 vira 2024-01-05T01:00:00.000Z) e recebem milissegundos.
A saída segue o YAML 1.2, então strings como yes e on são escritas sem aspas. Parsers de YAML 1.1 (por exemplo, PyYAML) podem lê-las como booleanos; coloque aspas à mão se necessário.
Horas locais como 09:00:00 são escritas com milissegundos (09:00:00.000); datas e datas e horas locais continuam sem fuso horário.
Roda no seu navegador (@iarna/toml, yaml, Prettier); inf e nan viram .inf e .nan.
FAQ
Os comentários são mantidos?
Não. O TOML é primeiro convertido em dados, então comentários e linhas em branco se perdem. Copie à mão os comentários importantes.
Como os [[array of tables]] são convertidos?
Cada bloco [[bin]] vira um item de uma lista YAML sob bin, como mostra o exemplo.
Por que recebo "Can't redefine existing key"?
A mesma chave ou tabela foi definida duas vezes, o que o TOML proíbe. O erro informa a linha e a coluna da segunda definição.