Cómo usar el formateador de YAML
- Pega tu YAML en el cuadro de entrada, por ejemplo un manifiesto de Kubernetes, un archivo de Docker Compose o un pipeline de CI.
- 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.
- Haz clic en Formatear para volver a imprimir el documento con una sangría y un uso de comillas coherentes.
- Haz clic en Convertir a JSON para ver los mismos datos como JSON.
- 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 comillas | Riesgo | Forma segura |
|---|---|---|
version: 1.10 | Se convierte en el número 1.1 | version: "1.10" |
zip: 01234 | El cero inicial puede perderse o leerse como octal | zip: "01234" |
country: NO | Booleano en los analizadores de YAML 1.1 | country: "NO" |
enabled: yes | Booleano en 1.1, cadena en 1.2 | enabled: 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.
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