100 % local: tus datos nunca salen de tu navegador

TOML a YAML — una config que todos leen igual

Convierte una configuración TOML a YAML. Los escalares ambiguos salen entrecomillados: un lector PyYAML antiguo y uno moderno dan los mismos valores.

Instantáneo Privado Cero cookies
Indentación
Invertir: YAML → TOML

Entrada TOML

Salida YAML

Qué hace esta herramienta

Una configuración TOML se vuelve YAML. Las tablas pasan a ser mapas anidados, y los [[arreglos de tablas]] secuencias.

title = "Demo"

[server]
host = "localhost"
port = 8080
title: Demo
server:
  host: localhost
  port: 8080

La indentación es una opción; dos espacios por defecto, que es lo que esperan casi todos los linters de YAML.

Entrecomillado donde importa, desnudo en todo lo demás

country = "NO"
answer = "yes"
start = "12:30"
country: "NO"
answer: "yes"
start: "12:30"

Sin comillas, cualquier lector de YAML 1.1 leería esos tres como false, true y el número 750 —PyYAML, o sea Ansible, o sea muchísimas canalizaciones—. Es el problema noruego: un código de país que se vuelve booleano, sin nada en el archivo que te avise. El serializador entrecomilla exactamente los escalares ambiguos y deja el resto en paz: el archivo sigue legible y las dos versiones de YAML coinciden en lo que contiene.

Los enteros grandes conservan sus cifras

snowflake = 1096285471735640155
snowflake: 1096285471735640155

TOML impone enteros con signo de 64 bits, y el analizador rechazaba el documento entero en cuanto uno pasaba de lo que un número de JavaScript guarda exacto. Un solo identificador volvía inconvertible una configuración legal. Ahora las cifras cruzan sin cambiar: era un defecto real, encontrado al escribir esta página y corregido.

Lo que cuesta el pivote JSON

Esta conversión pasa por JSON, como todas las conversiones compuestas del sitio: las dos mitades ya están probadas y sus mensajes de error ya son precisos.

  • inf, -inf y nan se rechazan, con la clave nombrada. JSON no tiene ninguno de los tres y los escribiría como null: una tasa infinita llegaría como una tasa ausente. YAML sí podría llevar .inf; el pivote no, y lo dice en vez de soltar el valor.
  • Las fechas se vuelven cadenas entrecomilladas. Una fecha TOML no tiene equivalente en JSON. En directo seguiría siendo fecha, pero una hora local como 07:32:00 ganaría toda una fecha de calendario inventada a su alrededor.
  • Los comentarios no sobreviven. Pertenecen al archivo, no a los datos.

Un archivo que empieza con la marca de orden de bytes invisible que añaden los editores de Windows ahora se lee con normalidad, en vez de rechazarse con un mensaje sobre los caracteres permitidos en una clave.

Privado por diseño

Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.

Preguntas frecuentes

¿Por qué ese valor va entre comillas y los demás no?
Porque significaría otra cosa para media comunidad YAML. El paquete `yaml` escribe YAML 1.2, donde `NO`, `yes` y `12:30` son cadenas. PyYAML —el lector de YAML más extendido que hay— aplica YAML 1.1, donde son falso, verdadero y el sexagesimal 750. Entrecomillar exactamente esos escalares, y nada más, da a los dos lectores los mismos valores a partir del mismo archivo.
¿Qué ha pasado con mis fechas?
Llegan como cadenas entrecomilladas, por ejemplo `"1979-05-27"`. La conversión pasa por JSON, que no tiene tipo fecha: una fecha TOML se vuelve texto, y un texto que parece una fecha hay que entrecomillarlo, o un lector YAML 1.1 volvería a convertirlo en una marca de tiempo a su gusto.
¿Por qué se rechaza `inf` si YAML sabe escribir `.inf`?
Porque JSON está en medio. Todas las conversiones compuestas de este sitio pasan por JSON, que no tiene infinito: el valor se rechaza nombrando su clave en vez de anularse en silencio. Ir directo de TOML a YAML salvaría el infinito, pero convertiría una hora local como `07:32:00` en una marca de tiempo completa, con una fecha inventada alrededor. El pivote pierde menos, y lo que no puede llevar, lo nombra.

Convertidores relacionados