Converter YAML em TOML — Numio
Converte um documento YAML em TOML. Mappings aninhados viram seções [table.sub], listas de mappings viram [[array of tables]] e chaves com valor null (~) são descartadas.
Reescrever uma configuração YAML como TOML quando um projeto passa a usar pyproject.toml ou configurações TOML do Cargo, Hugo ou Netlify.
YAML
TOML
Quando usar
- Reescrever uma configuração YAML como TOML quando um projeto passa a usar pyproject.toml ou configurações TOML do Cargo, Hugo ou Netlify.
- Verificar como uma estrutura YAML aninhada ficaria como tabelas TOML antes de escolher um formato de configuração.
Como usar
- Cole um único documento YAML com um mapping no nível superior no editor da esquerda ou use o botão de carregar arquivo para abrir um arquivo UTF-8.
- Corrija qualquer erro de YAML informado (indentação, vários documentos ou uma lista no nível superior).
- Confira datas, nulls e listas no TOML e depois copie-o.
YAML
# docker-compose style
version: "3.9"
services:
web:
image: nginx:1.27
ports:
- "8080:80"
environment:
DEBUG: false
WORKERS: 4
db:
image: postgres:16TOML
version = "3.9" [services.web] image = "nginx:1.27" ports = [ "8080:80" ] [services.web.environment] DEBUG = false WORKERS = 4 [services.db] image = "postgres:16"
Detalhes e limitações
O YAML é lido como YAML 1.2: yes continua sendo a string "yes", 0o17 vira 15 e datas sem aspas como 2024-01-05 viram strings TOML, não datas TOML.
Comentários e anchors não são mantidos como tais: aliases (*name) e chaves de merge <<: *anchor são expandidos para os valores a que se referem.
Só um documento é aceito; uma entrada com separadores --- falha com um erro de vários documentos. Uma lista no nível superior, ou uma lista que mistura mappings com valores simples, é rejeitada com uma explicação.
Roda no seu navegador (yaml + @iarna/toml). Subtabelas como [services.web.environment] são indentadas com dois espaços; o TOML ignora essa indentação.
FAQ
Posso converter um docker-compose.yml em TOML?
A estrutura é convertida, como no exemplo, mas o Docker Compose só lê YAML. Use isto para inspecionar ou reaproveitar os dados, não como arquivo do Compose.
O que acontece com valores null?
Chaves cujo valor é ~ ou null são omitidas, porque TOML não tem tipo null.
Anchors e chaves de merge do YAML são suportados?
Sim. Aliases (*name) são expandidos, e <<: *base copia as chaves de base para o mapping, com prioridade para as chaves escritas ao lado dele. O TOML mostra os valores mesclados.