REFERENCIA RÁPIDA DE YAML
Escalares, secuencias, mapeos, anclas, multi-línea
Sintaxis
Reglas Básicas
| Indentación | Solo espacios (sin tabulaciones), profundidad consistente |
| # | Comentario (hasta el final de la línea) |
| --- | Marcador de inicio de documento |
| ... | Marcador de fin de documento |
| Sensible a mayúsculas | Las claves y valores distinguen mayúsculas y minúsculas |
Ejemplo Mínimo
---
name: Alice
age: 30
active: true
Escalares
Tipos de Escalar
| hello | Cadena (sin comillas) |
| "hello" | Cadena (comillas dobles, permite escapes) |
| 'hello' | Cadena (comillas simples, literal) |
| 42 / 3.14 | Número (entero / decimal) |
| true / false | Booleano |
| null / ~ | Valor nulo |
| 2026-03-26 | Fecha (ISO 8601) |
Reglas de Comillas
plain: no se necesitan comillas
special: "los dos puntos: y almohadilla # necesitan comillas"
escape: "línea\nnueva"
literal: 'sin \n escape aquí'
Secuencias
Secuencia en Bloque
fruits:
- apple
- banana
- cherry
Secuencia de Flujo (En Línea)
colors: [red, green, blue]
matrix: [[1, 2], [3, 4]]
Secuencia de Objetos
users:
- name: Alice
role: admin
- name: Bob
role: user
Mapeos
Mapeo en Bloque
server:
host: localhost
port: 8080
debug: false
Mapeo de Flujo (En Línea)
point: {x: 10, y: 20}
Claves Complejas
? [first, second]
: "valor de clave compuesta"
Anclas y Alias
Definir y Reutilizar
defaults: &defaults
timeout: 30
retries: 3
production:
<<: *defaults
timeout: 60
Referencia
| &name | Definir un ancla |
| *name | Referenciar (alias) un ancla |
| << | Clave de fusión — fusionar mapeo en el actual |
Cadenas Multi-línea
Escalares en Bloque
| | (literal) | Conserva saltos de línea exactamente |
| > (plegado) | Pliega saltos de línea en espacios |
| |+ (conservar) | Literal, conservar saltos de línea finales |
| |- (eliminar) | Literal, eliminar saltos de línea finales |
| >- (plegar+eliminar) | Plegado, eliminar saltos de línea finales |
Bloque Literal
script: |
echo "line one"
echo "line two"
Bloque Plegado
description: >
Este texto largo será
plegado en una sola línea
con espacios.
Etiquetas
Etiquetas de Tipo
| !!str 42 | Forzar valor a cadena "42" |
| !!int "42" | Forzar valor a entero 42 |
| !!float 1 | Forzar valor a decimal 1.0 |
| !!bool "true" | Forzar valor a booleano |
| !!null "" | Forzar valor a nulo |
| !!binary | Datos binarios codificados en Base64 |
Ejemplo de Etiqueta
port: !!str 8080
enabled: !!bool "yes"
version: !!float 3
Patrones Comunes
Docker Compose
services:
web:
image: nginx:alpine
ports: ["80:80"]
environment:
NODE_ENV: production
GitHub Actions
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Consejos
| yamllint | Validar YAML en cuanto a sintaxis y estilo |
| yq | Procesador YAML de línea de comandos (como jq) |
| Evitar Norway | NO es false booleano — poner comillas a códigos de países |
| Evitar !!python | Nunca cargar YAML no confiable con cargadores inseguros |