TOML a YAML: Guía rápida de conversión con mapa de sintaxis y trampas

A sleek, modern visual showing the transformation from TOML to YAML

La forma más rápida de convertir TOML a YAML es el comando yq -oy '.' file.toml. Para la conversión manual, mapee las cabeceras de tabla TOML [table] a bloques indentados en YAML, los arrays TOML a listas prefijadas con guión, y siempre cite las cadenas ambiguas para evitar el «Problema de Noruega».

Conversión rápida: uso del CLI yq

TOML (Tom’s Obvious, Minimal Language) alcanzó su versión 1.1.0 en diciembre de 2025, pero YAML sigue siendo el estándar para pipelines CI/CD y manifiestos de Kubernetes. La herramienta yq gestiona la conversión con un solo comando.

Instalar yq

Plataforma Comando
macOS/Linux brew install yq
Windows choco install yq
Python (pip) pip install yq

Se prefiere la versión basada en Go de Mike Farah por su velocidad. Como señala la documentación de yq de Mike Farah, la herramienta decodifica la estructura TOML y la recodifica como YAML limpio.

Ejecutar la conversión

Mostrar en la terminal:

yq -oy '.' your-config.toml

Guardar en archivo:

yq -oy '.' your-config.toml > your-config.yaml

El flag -oy establece el formato de salida en YAML. Gestiona pares clave-valor, tablas anidadas y arrays.

Proceso sencillo de conversión en terminal en 3 pasos

Mapa de traducción de sintaxis: estructura TOML a YAML

El desarrollador Drew DeVault ha señalado que, aunque TOML es popular, YAML maneja el anidamiento profundo de forma más limpia. Aquí está el mapeo exacto:

Tablas a claves indentadas

TOML usa cabeceras entre corchetes; YAML usa indentación.

TOML YAML
[server] server:
host = "127.0.0.1" host: 127.0.0.1
port = 8080 port: 8080

Diferencia crítica: En TOML, la indentación es cosmética. En YAML, la indentación es estructural — un solo espacio incorrecto rompe toda la configuración.

Arrays a listas prefijadas con guión

TOML: ports = [ 8000, 8001 ]

YAML:

ports:
  - 8000
  - 8001

Comparación estructural lado a lado de TOML y YAML

Como explica Knightli.com, el «estilo de bloque» de YAML hace que las listas sean legibles, siempre que la alineación vertical sea consistente.

Tablas en línea y claves con punto

Construcción TOML Equivalente YAML
[a.b.c] (cabecera con punto) a:b:c: (indentación anidada)
point = { x = 1, y = 2 } (tabla en línea) point:x: 1y: 2

Casos de uso reales

Configuración del sitio estático Hugo

Hugo acepta hugo.toml, hugo.yaml o hugo.json. La mayoría de los proyectos comienzan con TOML (el valor predeterminado) y luego migran a YAML cuando la configuración necesita alinearse con plataformas de despliegue como Netlify o GitHub Actions. Hammer Europe señala que el comando hugo lee estos archivos para determinar cómo el Markdown se convierte en un sitio en vivo.

Empaquetado Python: pyproject.toml a CI/CD YAML

La comunidad Python estandarizó pyproject.toml a través de PEP 518. Estas configuraciones frecuentemente necesitan traducción a YAML para los flujos de trabajo CI/CD de GitHub Actions. Para flujos de trabajo de agentes de IA, CocoIndex informa que las configuraciones YAML optimizadas pueden reducir el uso de tokens hasta en un 70 %.

El Problema de Noruega y otras trampas de conversión

El bug del código de país NO

En YAML 1.1, las cadenas sin comillas como NO, OFF y YES se convierten automáticamente en booleanos false o true. TOML evita esto exigiendo comillas para todas las cadenas. Al convertir, cite siempre los valores ambiguos:

Valor Interpretación YAML 1.1 Solución
NO false "NO"
OFF false "OFF"
YES true "YES"
On true "On"

YAML 1.2 (la especificación actual) corrige la mayoría de estas coerciones, pero muchos analizadores aún usan el comportamiento 1.1 por defecto.

Metáfora visual del «Problema de Noruega» (Booleano vs Cadena)

Errores de indentación

Los analizadores YAML rechazan archivos con indentación inconsistente. Errores comunes:

  • Mezclar tabulaciones y espacios (YAML prohíbe las tabulaciones)
  • Usar 3 espacios en un bloque y 2 en otro
  • Elementos de lista desalineados

Generación asistida por IA

Herramientas como AgentBuilder permiten describir la configuración en lenguaje natural y producir YAML validado. Este ciclo de «describir → generar → validar» ayuda a evitar tanto los errores de indentación como el Problema de Noruega.

Conclusión

Use yq -oy '.' file.toml para la conversión automatizada. Para el trabajo manual, mapee las tablas TOML a la indentación YAML, los arrays a listas prefijadas con guión, y siempre cite las cadenas que puedan confundirse con booleanos. Después de cualquier conversión, valide la salida YAML antes de desplegar — un solo espacio desalineado o un NO sin comillas puede romper todo su pipeline.

FAQ

¿YAML soporta comentarios como TOML?

Sí. Ambos usan # para comentarios de una línea. Los comentarios en YAML pueden interferir con el análisis de cadenas multilínea, por lo que debe colocarlos en líneas separadas en caso de duda.

¿Qué es el «Problema de Noruega» en YAML?

En YAML 1.1, las cadenas sin comillas como NO (código de país de Noruega) se convierten automáticamente en el booleano false. TOML evita esto exigiendo comillas para todos los valores de cadena. Al convertir TOML a YAML, envuelva en comillas cualquier cadena potencialmente ambigua.

¿Qué formato maneja mejor el anidamiento profundo?

YAML. TOML requiere repetir cabeceras largas como [table.subtable.subsubtable] para cada nivel, lo cual se vuelve verboso. YAML representa la misma jerarquía con indentación — más compacto y legible en profundidad.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *