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.