Guía

Cadenas multilínea en YAML: diferencias entre | y >

Entiende los bloques literal y plegado de YAML, los indicadores de chomping y cómo conservar o unir saltos de línea.

por Tools in a Tab · Publicado el · Revisado el

Respuesta breve

En YAML, | crea un bloque literal y conserva los saltos de línea del contenido. > crea un bloque plegado y convierte la mayoría de los saltos simples en espacios, aunque conserva separaciones de párrafo y bloques más indentados. Los sufijos - y + controlan los saltos finales.

|: bloque literal

Este YAML:

mensaje: |
  primera línea
  segunda línea

representa conceptualmente:

{ "mensaje": "primera línea\nsegunda línea\n" }

Es adecuado para scripts, certificados, fragmentos de configuración o texto en el que cada línea tiene significado. La sangría común se elimina del valor; no forma parte de la cadena.

>: bloque plegado

Con el indicador plegado:

mensaje: >
  primera línea
  segunda línea

el valor habitual es:

{ "mensaje": "primera línea segunda línea\n" }

Resulta útil para párrafos largos que quieres dividir en el archivo sin introducir un salto lógico en cada línea. Una línea vacía mantiene la separación entre párrafos, y una línea con más indentación tiene reglas distintas; por eso > no equivale a reemplazar ciegamente todos los \n por espacios.

Puedes observar el resultado exacto con el conversor YAML a JSON. El conversor acepta el subconjunto YAML 1.2 representable en JSON y muestra los saltos como escapes \n dentro de la cadena resultante.

Sufijos -, sin sufijo y +

El indicador de chomping decide qué ocurre al final del bloque:

Forma Comportamiento final
` -o>-`
` o>`
` +o>+`

Por ejemplo, |- es frecuente cuando el valor no debe terminar en nueva línea. |+ solo conviene cuando varios saltos finales son parte real del dato.

Indentación y errores habituales

El contenido debe comenzar más adentro que la clave. YAML suele detectar la indentación a partir de la primera línea no vacía; también permite indicar una profundidad explícita en casos especiales, como |2. No la añadas si no hace falta.

  • Usa | cuando los saltos son datos y > cuando las líneas forman un párrafo.
  • No confundas el guion de |- con un elemento de lista.
  • Comprueba el carácter final si el consumidor compara firmas, plantillas o comandos literalmente.
  • Revisa espacios adicionales: una línea más indentada puede dejar de plegarse.

La especificación YAML 1.2.2 define los estilos literal y plegado, y documenta por separado los indicadores de chomping. Convierte y compara el valor resultante cuando cada byte importe.