Saltar al contenido principal

Formateador YAML (YAML Formatter)

Ejecuta Formatear para ver el resultado aquí.

Da formato al YAML con una sangría uniforme, conservando comentarios y valores.

Qué hace

YAML Formatter reescribe el YAML con una sangría y un espaciado coherentes, para que sea más fácil de leer y de comparar. Cambia cómo se dispone el texto, no lo que significa: las claves, los valores y los comentarios se conservan.

Cada resultado se comprueba antes de que lo veas. La herramienta vuelve a leer el texto formateado y compara su estructura y sus comentarios, tanto el texto como el lugar donde están, con tu entrada, y si difieren se niega en lugar de darte un texto que podría significar otra cosa.

Qué admite

  • YAML leído según las reglas de YAML 1.2 Core, como un documento o varios separados por ---: mapas, listas, comentarios, anclas y alias, bloques de texto de varias líneas (| y >) y las etiquetas estándar de YAML, como !!str.
  • Con varios documentos, todos se formatean y los separadores se conservan. Los comentarios alrededor de un separador se quedan en su lado, y un documento vacío sigue vacío. Cada documento tiene sus propias anclas, así que un alias no puede apuntar a un ancla de otro documento, y el mismo nombre de ancla se puede usar de nuevo en el documento siguiente.
  • Sangría de 2 o 4 espacios, nunca tabuladores. Los saltos de línea del resultado son siempre del mismo tipo, sea cual sea el de tu texto.
  • Los comentarios se conservan, también los que están al final de una línea. Una serie de líneas en blanco pasa a ser una sola línea en blanco, y el espaciado antes de un comentario queda uniforme.
  • Los valores conservan su significado: los números como 0o17, 0x1F, 1e400, 9007199254740993 y -0 se escriben exactamente como los escribiste, un texto no se convierte en número, fecha o sí/no, y los bloques de texto de varias líneas conservan sus saltos de línea.
  • El estilo de las comillas puede cambiar: un texto entre comillas simples suele escribirse entre comillas dobles. El texto en sí no cambia.
  • Las anclas y los alias se conservan. Cuando un valor tiene a la vez un ancla y una etiqueta, la herramienta puede intercambiar su orden.
  • La clave de fusión << se conserva como una clave normal, con un aviso, porque YAML 1.2 Core no tiene claves de fusión.

Conviene saber

  • Esto se rechaza, sin resultado: una clave repetida en un mapa; una etiqueta que no es una etiqueta estándar de YAML, o una etiqueta estándar que no encaja con su valor, como !!int abc; una clave que no es texto (un número, true, false, null, una clave vacía o una clave escrita como lista o mapa); y una directiva como %YAML o %TAG. Los errores de sintaxis también se rechazan, en cualquier documento, con su línea y columna contadas desde el principio de todo el texto. La herramienta nunca repara el YAML.
  • Comprobación de seguridad: después de formatear, la herramienta vuelve a leer el resultado y compara su estructura y sus comentarios, incluido el lugar de cada comentario, con tu entrada. Si algo difiere, se niega con un aviso de que formatear podría cambiar el significado. Las causas típicas son un tabulador al final de una línea dentro de un bloque de texto de varias líneas (| o >), un número tras el marcador de bloque (como |2) que la sangría elegida rompería y un comentario dentro de [ ] o { } que el formateo tendría que sacar de ellos, ya esté solo en una línea entre los corchetes o en la misma línea del corchete de apertura. Corregir esa parte (mueve ese comentario fuera de los corchetes), o elegir 2 espacios, suele ayudar.
  • Un texto con solo comentarios o líneas en blanco no tiene nada que formatear, así que recibes un aviso que pide contenido.
  • Los archivos grandes pueden tardar en formatearse, y los archivos con muchos comentarios tardan aún más. Si una ejecución se detiene en el límite de tiempo, prueba con una entrada más pequeña.
  • Si la sangría hiciera el resultado mucho mayor que el límite de tamaño, la herramienta se detiene antes de formatear. Usa 2 espacios o menos anidamiento.
  • Los límites valen para todo el texto: los límites de tamaño suman todos los documentos, mientras que el límite de anidamiento vale para cada documento por separado.

Cómo usarla

  1. Pega o escribe tu YAML en el cuadro de entrada. Puede tener un documento o varios, separados por ---. No se ejecuta nada mientras escribes.
  2. Elige la sangría («2 espacios» o «4 espacios») y pulsa «Formatear».
  3. Lee el resultado junto a tu entrada. Si tu YAML se rechaza, el mensaje explica el motivo y, cuando puede, el lugar.
  4. Pulsa «Copiar» para poner el resultado en el portapapeles, o «Descargar» para guardarlo como formatted.yaml.

Ejemplos

Ordenar un archivo desordenado

Pega este YAML y pulsa «Formatear» con «2 espacios» seleccionado. Los dos comentarios se conservan. Los espacios de más desaparecen, los elementos de la lista reciben la sangría elegida, las comillas simples alrededor de two pasan a ser comillas dobles (el texto sigue siendo two), tres líneas en blanco pasan a ser una y el espaciado dentro de { } queda uniforme.

# settings
name:    demo   # the name
items:
      -   one
      -   'two'



flags: {a: 1,   b: 2}
# settings
name: demo # the name
items:
  - one
  - "two"

flags: { a: 1, b: 2 }

Una clave repetida

La clave «port» aparece dos veces en el mismo mapa, lo que YAML no admite. La herramienta nunca elige uno de los dos valores por ti, así que se niega y señala la repetición.

port: 80
port: 8080

Una clave se repite en el mismo mapa. YAML exige que las claves de un mapa sean únicas. Elimina o renombra la clave repetida.

Línea 2, columna 1

Más de un documento

Pega este YAML y pulsa «Formatear». Los dos documentos están separados por ---. Cada uno se formatea por su cuenta: el separador se queda entre ellos, los dos comentarios se quedan en su documento, y los espacios de más y la sangría se corrigen en los dos.

# first
name:    one
---
# second
name:   two
items:
      - a
# first
name: one
---
# second
name: two
items:
  - a

Una etiqueta personalizada

La etiqueta !money no es una de las etiquetas estándar de YAML. YAML Validator acepta este texto con un aviso, pero YAML Formatter solo admite las etiquetas estándar, así que se niega en lugar de arriesgar un cambio en tus datos.

price: !money 12.50

Este YAML usa una etiqueta que esta herramienta no admite: una etiqueta personalizada o ajena al Core, o una etiqueta del Core (como !!int) que no encaja con su valor. La sintaxis es válida, pero el YAML Formatter y el Viewer solo admiten las etiquetas de YAML 1.2 Core, así que esta herramienta se negó en lugar de alterar u ocultar tus datos.

Línea 1, columna 8

YAML válido que no es seguro reformatear

Lo único que hay entre los corchetes es un comentario solo en una línea. El texto es un YAML válido, pero formatear obligaría a sacar ese comentario de los corchetes, lo que cambia el lugar donde está, así que la herramienta se niega y deja tu texto como está. Un comentario en la misma línea del corchete de apertura, como en ports: [ # note, se rechaza por el mismo motivo.

a: [
  # c
]

Este YAML es válido, pero formatearlo podría cambiar su significado, así que la herramienta se negó en lugar de arriesgar tus datos. Causas típicas: un tabulador al final de una línea dentro de un bloque de texto de varias líneas (| o >), un número tras el marcador de bloque (como |2) que la sangría elegida rompería, o un comentario dentro de [ ] o { } que el formateo tendría que sacar de ellos. Corrige esa parte o elige 2 espacios e inténtalo de nuevo.

Límites y privacidad

Límites de tamaño

  • Entrada: hasta 2.000.000 bytes de texto en UTF-8 (unos 2 MB). Las letras acentuadas y los emojis ocupan más de un byte cada uno. Una entrada mayor se rechaza.
  • Resultado: también hasta 2.000.000 bytes. Si el resultado completo fuera mayor, la herramienta muestra solo una vista previa incompleta de los primeros 100.000 bytes, y esa vista previa no se puede copiar ni descargar.
  • Anidamiento: hasta 256 niveles de mapas y listas dentro de otros. Un YAML más profundo se rechaza porque supera lo que procesa la herramienta.
  • Tiempo: una ejecución que tarda más que su límite de tiempo se detiene. Prueba con una entrada más pequeña.

Tu privacidad

El texto que escribes o pegas, o abres desde un archivo local, se procesa localmente en tu navegador, en un Web Worker dedicado. Nunca se sube ni se envía al servidor (un archivo que abres se lee solo en tu navegador), y no se escribe en el almacenamiento, en cookies ni en la barra de direcciones.

«Copiar» pone el resultado en el portapapeles y «Descargar» lo guarda como archivo, pero solo cuando pulsas el botón. El archivo se crea en tu navegador, así que no se sube nada.

Para conocer todos los detalles, consulta la Política de privacidad

Herramientas y páginas relacionadas

Tu texto se queda en la página cuando cambias de herramienta en la misma pestaña, así que puedes probar el mismo texto en otra. Recargar o cerrar la pestaña lo termina.

Todas las herramientas