DocumentosImágenesMediaHerramientas PDF

Convertir TOML a YAML Online

Convierte configuración TOML a YAML, gratis, en tu navegador.


title: My Project
version: 1.0.0
server:
  host: localhost
  port: 8080
database:
  host: db.example.com
  name: myapp
Procesado en tu navegador

De Rust y Hugo a Docker y Jekyll

Migración Hugo→Jekyll

Convierte front matter TOML de archivos Hugo a YAML para Jekyll, Gatsby o cualquier generador moderno.

Proyectos Rust a CI/CD

Extrae datos de Cargo.toml o pyproject.toml para usarlos en workflows de GitHub Actions o GitLab CI.

100% privado

Tu configuración nunca sale de tu navegador. Sin servidores, sin registro.

Instantáneo

Conversión en tiempo real. Detecta errores de sintaxis TOML al instante.

Tres pasos, sin complicaciones

1

Pega tu TOML

Pega el contenido TOML en el editor. Soporta Cargo.toml, pyproject.toml, Pipfile, hugo.toml y cualquier TOML v1.0 válido.

2

Conversión a YAML

El conversor parsea el TOML y genera YAML 1.2 equivalente con indentación limpia. Todo ocurre en tu navegador, sin subir archivos.

3

Copia o descarga el YAML

YAML resultante listo para docker-compose.yml, GitHub Actions, Ansible, Kubernetes o front matter de Jekyll/Hugo en YAML.

¿Tienes dudas?

El caso más frecuente es la migración entre ecosistemas de generadores de sitios estáticos: Hugo usa TOML como formato de front matter preferido (aunque también soporta YAML), mientras que Jekyll, Gatsby, Eleventy y la mayoría de los generadores modernos usan YAML. Si estás migrando un sitio de Hugo a otro generador, o si tienes una biblioteca de contenido con front matter TOML que necesitas normalizar a YAML, esta herramienta convierte cada bloque TOML a su equivalente YAML. Otro escenario común es la migración de proyectos Rust: los proyectos Rust usan Cargo.toml para gestionar dependencias, pero al contenedorizarlos con Docker o definir su CI/CD en GitHub Actions, necesitas expresar la misma estructura de datos en YAML.

TOML (Tom's Obvious, Minimal Language) fue creado por Tom Preston-Werner (cofundador de GitHub) en 2013 como alternativa más simple y sin ambigüedades a YAML para archivos de configuración. TOML 1.0 fue lanzado en enero de 2021. Sus características principales: usa secciones delimitadas por [corchetes] en lugar de indentación, tiene tipos de datos explícitos (fechas RFC 3339, arrays tipados, inline tables), y es inequívoco — el mismo TOML siempre produce el mismo árbol de datos, algo que no siempre es cierto en YAML debido a sus múltiples modos de representar el mismo valor. YAML es más expresivo y maduro (YAML 1.0 en 2001, YAML 1.2 en 2009), pero también más propenso a errores de indentación. TOML es preferido en el ecosistema Rust (Cargo.toml) y Python moderno (pyproject.toml, PEP 518).

Cargo.toml y docker-compose.yml tienen estructuras conceptualmente diferentes: Cargo.toml define metadatos del paquete Rust, dependencias y features del crate; docker-compose.yml define servicios, redes y volúmenes de contenedores. No hay una conversión directa uno a uno con significado semántico. Sin embargo, convertir Cargo.toml a YAML estructural es útil para extraer dependencias, versiones o features y usarlos como variables en un docker-compose.yml o en un workflow de GitHub Actions. Por ejemplo, extraer la versión del paquete de [package].version para usarla como tag de imagen Docker.

Sí, aunque con transformación manual posterior. pyproject.toml (introducido por PEP 518 en 2016, ahora el estándar de facto para proyectos Python modernos) define metadatos del proyecto, dependencias, herramientas de build (poetry, hatch, flit) y configuración de linters. Convertirlo a YAML te da una representación estructural desde la que puedes extraer dependencias ([tool.poetry.dependencies]) para generarlos en un GitHub Actions workflow (pip install) o crear un entorno de Conda. La herramienta genera YAML válido que puedes editar para adaptarlo al esquema específico de GitHub Actions, GitLab CI o CircleCI.

En Hugo, el front matter TOML se delimita con +++ al inicio y al final del archivo Markdown. En Jekyll y la mayoría de los generadores YAML, el front matter se delimita con --- (tres guiones). La migración implica: extraer el bloque TOML entre los +++, convertirlo a YAML con esta herramienta, y reemplazar los delimitadores +++ por --- en el archivo Markdown. Los campos estándar (title, date, tags, draft) se traducen directamente. Campos específicos de Hugo (aliases, outputs, cascade) pueden no tener equivalente en Jekyll y requerirán adaptación manual.

Sí. Los arrays TOML se convierten a listas YAML con la sintaxis de guion (-). Los inline arrays [[1, 2, 3]] se convierten a listas YAML en línea ([1, 2, 3]) o en bloque según la longitud. Las tablas TOML ([section] y [[array of tables]]) se convierten a mapas YAML anidados. Los array of tables ([[products]] en TOML) se convierten a listas de objetos YAML, que es la representación más natural en YAML para colecciones de objetos con la misma estructura. Los tipos de datos de TOML (fechas RFC 3339, booleanos, enteros, flotantes) se preservan en sus equivalentes YAML.

Convertir TOML a YAML: migraciones Rust, Hugo y pyproject.toml a entornos DevOps

TOML (Tom's Obvious, Minimal Language) fue creado por Tom Preston-Werner, cofundador de GitHub, en 2013, con el objetivo explícito de ser 'obviamente inequívoco' — una crítica directa a la complejidad de YAML, que tiene múltiples modos de representar el mismo valor y cuya especificación 1.1 contenía ambigüedades que llevaron a diferentes parsers a comportarse de forma distinta. TOML 1.0 fue lanzado oficialmente en enero de 2021 tras ocho años de desarrollo iterativo. El ecosistema que más ha adoptado TOML es el de Rust: Cargo, el gestor de paquetes oficial de Rust, usa Cargo.toml para definir metadatos del crate, dependencias, features y configuración del workspace. Fuera de Rust, Python moderno ha adoptado TOML a través de pyproject.toml (definido por PEP 518 en 2018 y consolidado por PEP 621 en 2021), que centraliza la configuración de build, metadatos del paquete y herramientas como pytest, mypy, black y ruff. Hugo, el generador de sitios estáticos más rápido (escrito en Go), adoptó TOML como su formato de configuración principal.

YAML, cuya especificación 1.2 fue publicada en octubre de 2009, domina el ecosistema DevOps: GitHub Actions, GitLab CI, CircleCI, Azure Pipelines y Jenkins (via YAML pipelines) usan YAML exclusivamente para definir pipelines de CI/CD. Docker Compose ha usado YAML desde su versión inicial, Kubernetes usa YAML para todos sus manifests de recursos, y Ansible usa YAML para playbooks y roles. Helm charts (el gestor de paquetes de Kubernetes) mezcla YAML con plantillas Go. La prevalencia de YAML en DevOps significa que los proyectos Rust que usan Cargo.toml como configuración de proyecto necesitan expresar su configuración de CI/CD en YAML, y los proyectos Python con pyproject.toml deben escribir sus GitHub Actions workflows en YAML. Esto crea una coexistencia de ambos formatos en el mismo repositorio que a veces requiere conversión entre ellos.

La migración entre generadores de sitios estáticos es el escenario más visual donde TOML→YAML es necesario. Hugo, lanzado en 2013 por Steve Francia y posteriormente mantenido con activas contribuciones de Bjørn Erik Pedersen, adoptó TOML como formato de front matter preferido en sus primeras versiones. El front matter TOML en Hugo se delimita con +++ y puede contener el título, fecha, categorías, etiquetas y cualquier dato personalizado de cada página. Jekyll, el generador de sitios estáticos más antiguo y que popularizó el concepto de front matter (creado por Tom Preston-Werner en 2008 y actualmente el motor de GitHub Pages), usa YAML delimitado con ---. La migración de un sitio de Hugo a Jekyll implica convertir miles de archivos Markdown con front matter TOML a YAML. Aunque esta herramienta procesa un archivo a la vez en el navegador, sirve como validación de la conversión antes de aplicar un script de batch. Para migraciones masivas, scripts Python con toml y PyYAML, o Node.js con @iarna/toml y js-yaml, automatizan el proceso.