Formateador y validador de YAML

Valida YAML, localiza errores de sangría y de sintaxis, normaliza el formato o conviértelo a JSON, de forma privada en tu navegador.

Funciona 100% en tu navegador. Nada de lo que pegas se sube ni se guarda.
Entrada YAML
Resultado
Listo.

Cómo usar el formateador de YAML

  1. Pega tu YAML en el cuadro de entrada, por ejemplo un manifiesto de Kubernetes, un archivo de Docker Compose o un pipeline de CI.
  2. Haz clic en Validar para comprobar la sintaxis. Los errores se indican con la línea y la columna en las que se detuvo el analizador.
  3. Haz clic en Formatear para volver a imprimir el documento con una sangría y un uso de comillas coherentes.
  4. Haz clic en Convertir a JSON para ver los mismos datos como JSON.
  5. Copia el resultado de vuelta a tu proyecto.

La herramienta analiza YAML 1.2 con la biblioteca de código abierto js-yaml, por completo en tu navegador. Tus archivos no se suben ni se guardan en ningún sitio, algo importante cuando contienen nombres de host, credenciales u otros secretos.

¿Qué es YAML?

YAML («YAML Ain't Markup Language») es un formato de serialización de datos pensado para las personas. En lugar de corchetes y llaves usa la sangría para mostrar la estructura, un guion (-) para los elementos de una lista y pares key: value para los mapeos. También admite comentarios con #, cadenas de varias líneas, y anclas y alias para reutilizar valores.

Desde YAML 1.2, el formato está diseñado como un superconjunto de JSON, así que casi cualquier documento JSON válido es también YAML válido. Eso facilita pasar de uno a otro: YAML resulta agradable de escribir a mano, mientras que JSON es lo que intercambian la mayoría de las API y los programas.

Como los espacios en blanco tienen significado, un solo espacio mal puesto puede cambiar la estructura de un archivo YAML sin producir ningún error. Validar y volver a formatear revela cómo lee realmente tu documento el analizador, que a menudo es la forma más rápida de encontrar un error sutil.

Errores comunes de YAML y cómo corregirlos

Tabuladores para la sangría. YAML prohíbe los caracteres de tabulación en la sangría. Sustitúyelos por espacios; la mayoría de los editores pueden hacerlo automáticamente.

Sangría incoherente. Los elementos del mismo nivel deben alinearse exactamente. En este ejemplo, image tiene un espacio de más:

containers:
  - name: web
     image: nginx:1.27

Alinéalo con name:

containers:
  - name: web
    image: nginx:1.27

Falta el espacio después de los dos puntos. port:8080 se lee como una única cadena simple, no como una clave con un valor. Escribe port: 8080.

Caracteres especiales en cadenas sin comillas. Un valor que empieza por *, &, !, @, { o [, o que contiene : o #, necesita comillas:

message: "Error: disk full"
pattern: "*.log"

Claves duplicadas. Un mapeo no puede contener la misma clave dos veces. Algunos analizadores conservan en silencio el último valor; el validador lo señala para que te des cuenta.

Tipado implícito: la sorpresa clásica de YAML

YAML adivina los tipos de los valores sin comillas. Con el esquema básico de YAML 1.2, true y false son booleanos, null y ~ son nulos, y lo que parece un número es un número. Los analizadores antiguos de YAML 1.1 iban más lejos y trataban yes, no, on y off como booleanos, y así fue como el código de país NO de Noruega se convirtió, como es bien sabido, en false. Las distintas herramientas siguen sin ponerse de acuerdo en esto, así que pon entre comillas todo lo que deba seguir siendo una cadena:

Valor sin comillasRiesgoForma segura
version: 1.10Se convierte en el número 1.1version: "1.10"
zip: 01234El cero inicial puede perderse o leerse como octalzip: "01234"
country: NOBooleano en los analizadores de YAML 1.1country: "NO"
enabled: yesBooleano en 1.1, cadena en 1.2enabled: true

Consejos y buenas prácticas

  • Usa dos espacios por nivel; es el estilo más común en los archivos de Kubernetes, Ansible y GitHub Actions.
  • Usa | para texto de varias líneas en el que los saltos de línea importan (scripts, certificados) y > cuando las líneas deban plegarse en un solo párrafo.
  • Convertir a JSON es una forma fiable de confirmar la estructura: si un valor acaba en el objeto equivocado, la salida JSON lo hace evidente. Para conversiones de ida y vuelta, usa el Conversor JSON ↔ YAML.
  • ¿Necesitas ordenar el JSON después? El Formateador y validador de JSON puede ordenar las claves y minificarlo.
Consejo: Al formatear se eliminan los comentarios, porque no forman parte de los datos analizados. Guarda una copia del original si tus comentarios importan.

Preguntas frecuentes

¿JSON es YAML válido?

A efectos prácticos, sí. YAML 1.2 se alineó para que los documentos JSON sean YAML válido, y por eso puedes pegar JSON en esta herramienta y se analizará.

¿Por qué YAML no admite tabuladores?

Los tabuladores se muestran con anchos distintos en distintos editores, así que una sangría que parece alineada puede no estarlo. La especificación prohíbe los tabuladores en la sangría para que la estructura sea inequívoca.

¿Por qué el formateo eliminó mis comentarios?

El formateador analiza el YAML como datos y lo vuelve a imprimir. Los comentarios no son datos, así que no sobreviven al proceso de ida y vuelta. Las anclas y los alias se resuelven durante el análisis, por lo que pueden volver expandidos o con nombres generados.

¿Qué versión de YAML admite esta herramienta?

Usa js-yaml, que sigue YAML 1.2. Los archivos escritos para analizadores de YAML 1.1 suelen funcionar, pero valores como yes y no se tratan como cadenas.

Actualizado

Copiado al portapapeles