Herramientas
Guías

Validador y formateador de YAML

Formateo

Valida, normaliza o comprime YAML con js-yaml. Corrige la sangría y las comillas, y divide flujos de varios documentos (---). Procesamiento puro de YAML, sin conversión de formato.

100 % del lado del cliente Sin backend

No se recuperan URLs remotas; pega tu JSON directamente.

Entrada
Salida
Pega YAML a la izquierda y elige Formatear o Comprimir.
En esta página

¿Qué es un formateador de YAML?#

Un formateador de YAML toma un archivo de configuración que ha ido a la deriva —tabuladores mezclados con espacios, paso de sangría inconsistente, comillas usadas en unos sitios sí y en otros no, un ancla que alguien definió y nunca reutilizó— y lo normaliza a una forma limpia y predecible. También caza aquello por lo que YAML es tristemente célebre: un documento que parece estar bien y en silencio significa otra cosa, porque YAML es sensible a los espacios y está lleno de reglas implícitas sobre lo que significa una palabra suelta.

Esta página analiza tu YAML y lo reemite a través de js-yaml de forma controlada. Formatear resangra con el paso que elijas (2 o 4 espacios), desactiva el plegado de líneas para que cada valor se siente en su propia línea y expande cualquier ancla y alias a contenido repetido plano, así la salida es totalmente autónoma. Comprimir vuelve a volcar los mismos datos en notación flow{a: 1, b: [2, 3]}—, que es lo más parecido que YAML tiene a una forma compacta, ya que YAML no puede simplemente borrar sus espacios como JSON o CSS. Sea cual sea el modo que elijas, el documento se analiza primero, así un tabulador donde debería ir un espacio o dos puntos sin su espacio final se reporta con su fila y columna en lugar de producir la estructura de datos equivocada en silencio.

Cómo usarlo#

  1. Pega tu YAML en el panel de Entrada a la izquierda. El marcador de posición muestra un documento mínimo, o pulsa Ejemplo.
  2. Elige un botón de Modo en la barra de herramientas:
    • Formatear: resangra, desactiva el plegado de líneas, expande anclas/alias y emite cada colección en estilo bloque.
    • Comprimir: emite cada colección en estilo flow en las mínimas líneas posibles. La sangría pierde importancia porque las colecciones flow son explícitas.
  3. En modo Formatear, elige una Sangría: 2 o 4 espacios.
  4. Opcionalmente elige un estilo de Comillas: auto (entrecomilla solo cuando un escalar lo necesita realmente, el valor por defecto), simples o dobles. Esto normaliza el carácter de comilla en los escalares que deben entrecomillarse; nunca fuerza comillas sobre valores planos que no las necesitan.
  5. Lee el resultado en el panel de Salida. La cabecera muestra el tamaño de salida; usa Copiar para llevártelo. Limpiar reinicia ambos paneles.

Si el análisis falla, la barra de estado reporta la fila y la columna del problema: los errores de YAML de js-yaml llevan una posición, y esta página la muestra directamente.

Características principales#

  • Formatear y comprimir desde el mismo análisis. Ambos modos validan el documento de antemano, así un error estructural se reporta una sola vez con una ubicación, independientemente del botón que hayas pulsado.
  • Anclas expandidas. Las referencias &anchor / *alias se resuelven y se escriben inline (noRefs), así la salida nunca depende de un nombre definido tres pantallas más arriba. El resultado es un documento autónomo que puedes entregar a cualquiera.
  • Sin plegado de líneas. Los valores largos no se envuelven en un límite de columna (lineWidth: -1), así cada valor ocupa exactamente una línea: más fácil de diffar y más fácil de leer.
  • Normalización opcional de comillas. Elige comillas simples o dobles para hacer el carácter de comilla consistente en todo el documento, o déjalo en auto para que solo reciban comillas los valores que genuinamente las necesitan.
  • Consciente de multidocumento. La entrada separada por --- se analiza como múltiples documentos y se reemite con separadores --- intactos: práctico para manifiestos de Kubernetes y archivos multidoc similares.
  • Se defiende de bombas YAML. Un límite de profundidad de anidamiento evita que documentos patológicamente profundos se expandan en algo peligroso.
  • Estrictamente lado del cliente, con un Web Worker para entradas de más de 1 MB para que la página se mantenga responsiva.

Ejemplo detallado#

Una configuración de servicio con un ancla reutilizada y un estilo ligeramente irregular:

Entrada:

service:
  name: &name "api-gateway"
  host:   example.com
  replicas: 3
  id: *name
logging:
  level: info
  outputs: [{name: stdout}, {name: file}]

Pulsa Formatear con 2 espacios y comillas auto:

service:
  name: api-gateway
  host: example.com
  replicas: 3
  id: api-gateway
logging:
  level: info
  outputs:
    - name: stdout
    - name: file

Dos cosas ocurrieron que puedes ver. El ancla &name y el alias *name se resolvieron ambos al valor literal api-gateway, así id ahora se lee como un valor plano y el documento ya no depende del ancla. Y la lista en estilo flow [{name: stdout}, {name: file}] se reescribió como una lista en bloque, una entrada por línea: mucho más fácil de escanear y de diffar contra otra versión. Pulsa Comprimir sobre la misma entrada y los mismos datos vuelven en forma flow:

service: {name: api-gateway, host: example.com, replicas: 3, id: api-gateway}
logging: {level: info, outputs: [{name: stdout}, {name: file}]}

Cada colección queda ahora inline. El conteo de bytes baja porque la sangría y los saltos de línea han desaparecido, pero el significado es idéntico, que es justo lo que debería significar comprimir para un formato sensible a los espacios.

Preguntas frecuentes#

¿A dónde fueron mis comentarios?#

El viaje de ida y vuelta de YAML a través de js-yaml analiza los comentarios y los descarta: la librería no tiene un redumper que preserve comentarios. Los comentarios se toleran durante el análisis (nunca provocan un error), pero no aparecen en la salida. Si los comentarios carry contexto importante, conserva tu archivo original como fuente de verdad y trata la salida de esta herramienta como la forma canónica para máquinas.

¿Cuál es la diferencia entre Formatear y Comprimir para YAML?#

Formatear reescribe el documento en estilo bloque limpio: mapeos y secuencias anidadas sangrados con el paso que elegiste, un valor por línea, sin plegado. Comprimir reescribe los mismos datos en estilo flow: colecciones {key: value} y [a, b] en una sola línea. Ambos analizan de forma idéntica primero; solo difieren en cómo se serializan los datos de vuelta.

¿En qué se diferencia esto del conversor YAML/JSON?#

Esta herramienta es YAML entra, YAML sale: normaliza o comprime un documento YAML y devuelve YAML. El conversor YAML/JSON de este sitio traduce entre los dos formatos. Usa esta página cuando quieres el mismo formato, simplemente con mejor forma; usa el conversor cuando de verdad quieres JSON.

¿Mi YAML se sube a algún sitio?#

No. js-yaml va empaquetado en la página y se ejecuta en tu navegador. Para entradas de más de 1 MB el análisis ocurre dentro de un Web Worker, pero de forma local: nada sale de tu dispositivo.