Saltar al contenido

Convertir YAML a TOML — Numio

Convierte un documento YAML en TOML. Los mappings anidados pasan a secciones [table.sub], las listas de mappings a [[array of tables]] y las claves con valor null (~) se descartan.

Reescribir una configuración YAML como TOML cuando un proyecto pasa a pyproject.toml o a los ajustes TOML de Cargo, Hugo o Netlify.

YAML

TOML

Cuándo usarla

  • Reescribir una configuración YAML como TOML cuando un proyecto pasa a pyproject.toml o a los ajustes TOML de Cargo, Hugo o Netlify.
  • Comprobar cómo quedaría una estructura YAML anidada como tablas TOML antes de elegir un formato de configuración.

Cómo usarla

  1. Pega un único documento YAML con un mapping en el nivel superior en el editor izquierdo, o usa el botón de cargar archivo para abrir un archivo UTF-8.
  2. Corrige cualquier error de YAML indicado (sangría, varios documentos o una lista en el nivel superior).
  3. Revisa las fechas, los null y las listas en el TOML, y luego cópialo.

YAML

# docker-compose style
version: "3.9"
services:
  web:
    image: nginx:1.27
    ports:
      - "8080:80"
    environment:
      DEBUG: false
      WORKERS: 4
  db:
    image: postgres:16

TOML

version = "3.9"

[services.web]
image = "nginx:1.27"
ports = [ "8080:80" ]

  [services.web.environment]
  DEBUG = false
  WORKERS = 4

[services.db]
image = "postgres:16"

Detalles y limitaciones

El YAML se lee como YAML 1.2: yes sigue siendo la cadena "yes", 0o17 pasa a 15 y las fechas sin comillas como 2024-01-05 pasan a cadenas TOML, no a fechas TOML.

Los comentarios y los anchors no se conservan como tales: los aliases (*name) y las claves de fusión <<: *anchor se expanden a los valores a los que hacen referencia.

Solo se acepta un documento; una entrada con separadores --- falla con un error de varios documentos. Una lista en el nivel superior, o una lista que mezcla mappings con valores simples, se rechaza con una explicación.

Se ejecuta en tu navegador (yaml + @iarna/toml). Las subtablas como [services.web.environment] se sangran con dos espacios; TOML ignora esta sangría.

FAQ

¿Puedo convertir un docker-compose.yml a TOML?

La estructura se convierte, como en el ejemplo, pero Docker Compose solo lee YAML. Úsalo para inspeccionar o reutilizar los datos, no como archivo de Compose.

¿Qué pasa con los valores null?

Las claves cuyo valor es ~ o null se omiten porque TOML no tiene tipo null.

¿Se admiten los anchors y las claves de fusión de YAML?

Sí. Los aliases (*name) se expanden y <<: *base copia las claves de base en el mapping; las claves escritas junto a él tienen prioridad. El TOML muestra los valores combinados.

Especificaciones y referencias