Saltar al contenido

Convertir TOML a YAML — Numio

Convierte un documento TOML en YAML. Las tablas pasan a mappings anidados, los [[array of tables]] a listas de mappings, y solo se añaden comillas donde YAML las necesita (por ejemplo, "2021" se mantiene como cadena).

Pasar ajustes de una configuración TOML (Cargo, pyproject, Hugo) a una herramienta basada en YAML, como un workflow de CI o un manifiesto de Kubernetes.

TOML

YAML

Cuándo usarla

  • Pasar ajustes de una configuración TOML (Cargo, pyproject, Hugo) a una herramienta basada en YAML, como un workflow de CI o un manifiesto de Kubernetes.
  • Leer como árbol con sangría un archivo TOML largo con tablas con puntos y anidadas.

Cómo usarla

  1. Pega el documento TOML en el editor izquierdo, o usa el botón de cargar archivo para abrir un archivo UTF-8.
  2. Si aparece un error, usa la fila y la columna indicadas para localizar claves duplicadas o problemas de sintaxis.
  3. Revisa las fechas y horas y los valores entre comillas en el YAML, y luego cópialo.

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

Detalles y limitaciones

Los comentarios se pierden. Las fechas y horas con desfase se convierten a UTC (2024-01-05T10:00:00+09:00 pasa a 2024-01-05T01:00:00.000Z) y se añaden milisegundos.

La salida sigue YAML 1.2, así que cadenas como yes y on se escriben sin comillas. Los parsers de YAML 1.1 (por ejemplo, PyYAML) pueden leerlas como booleanos; ponlas entre comillas a mano si hace falta.

Las horas locales como 09:00:00 se escriben con milisegundos (09:00:00.000); las fechas y fechas y horas locales no llevan zona horaria.

Se ejecuta en tu navegador (@iarna/toml, yaml, Prettier); inf y nan pasan a .inf y .nan.

FAQ

¿Se conservan los comentarios?

No. Primero se analiza el TOML como datos, así que se pierden los comentarios y las líneas en blanco. Copia a mano los comentarios importantes.

¿Cómo se convierten los [[array of tables]]?

Cada bloque [[bin]] pasa a ser un elemento de una lista YAML bajo bin, como se ve en el ejemplo.

¿Por qué aparece "Can't redefine existing key"?

La misma clave o tabla está definida dos veces, algo que TOML prohíbe. El error indica la fila y la columna de la segunda definición.

Especificaciones y referencias