Introducción a YAML
YAML no es un lenguaje de marcado
YAML significa "YAML Ain't Markup Language" y se utiliza ampliamente en Grav para sus archivos de configuración, esquemas y también en la configuración de páginas.
YAML es al la configuración lo que markdown es al marcado. Básicamente, es un formato de datos estructurado legible por humanos. Es menos complejo y pesado que XML o JSON, pero proporciona capacidades similares. Básicamente te permite proporcionar configuraciones potentes sin tener que aprender un tipo de código más complejo como CSS, JavaScript o PHP.
YAML está diseñado desde cero para ser fácil de usar. En su núcleo, un archivo YAML se utiliza para describir datos. Uno de los beneficios de usar YAML es que la información en un solo archivo YAML se puede traducir fácilmente a múltiples tipos de lenguaje.
Básicamente, los datos que ingresas en un archivo YAML se utilizan junto con una biblioteca para crear las páginas que ves dentro de Grav.
Reglas básicas de YAML
Existen algunas reglas que YAML tiene en su lugar para evitar problemas relacionados con la ambigüedad en relación con varios idiomas y programas de edición. Estas reglas hacen posible que un solo archivo YAML sea interpretado de manera consistente, independientemente de la aplicación y/o biblioteca que se esté utilizando para interpretarlo.
- Los archivos YAML deben terminar en
.yaml
siempre que sea posible en Grav. - YAML distingue entre mayúsculas y minúsculas.
- YAML no permite el uso de tabulaciones.
Tipos de datos básicos
YAML sobresale en trabajar con mapeos (hashes / diccionarios), secuencias (arrays / listas) y escalares (cadenas / números). Si bien se puede utilizar con la mayoría de los lenguajes de programación, funciona mejor con los lenguajes que están construidos en torno a estos tipos de estructuras de datos. Esto incluye: PHP, Python, Perl, JavaScript y Ruby.
Escalares
Los escalares son un concepto bastante básico. Son las cadenas y números que componen los datos en la página. Un escalar podría ser una propiedad booleana, como true
, un entero (número) como 5
, o una cadena de texto, como una oración o el título de tu sitio web.
La mayoría de los escalares no están entrecomillados, pero si estás escribiendo una cadena que utiliza puntuación y otros elementos que pueden confundirse con la sintaxis de YAML (guiones, dos puntos, etc.), es posible que desees entrecomillar estos datos usando comillas simples '
o dobles "
comillas. Las comillas dobles te permiten usar escapes para representar caracteres ASCII y Unicode.
entero: 25
cadena: "25"
flotante: 25.0
booleano: true
CONSEJO
Las palabras true
, false
, null
, ~
y las fechas tienen un significado especial en YAML. Por favor, enciérralas entre comillas si no quieres usarlas como un booleano, nulo o tipo de fecha. Lo mismo ocurre con los números de versión, deben ir entre comillas para separarlos de los valores de punto flotante.
Secuencias
Aquí hay una secuencia simple que podrías encontrar en Grav. Es una lista básica con cada elemento en la lista colocado en su propia línea con un guión de apertura.
- Gato
- Perro
- Pez dorado
Esta secuencia coloca cada elemento en la lista al mismo nivel. Si deseas crear una secuencia anidada con elementos y subelementos, puedes hacerlo colocando un solo espacio antes de cada guion en los subelementos. YAML utiliza espacios, NO tabulaciones, para la indentación. Puedes ver un ejemplo de esto a continuación.
-
- Gato
- Perro
- Pez dorado
-
- Pitón
- León
- Tigre
Si deseas anidar tus secuencias aún más, solo necesitas agregar más niveles.
-
-
- Gato
- Perro
- Pez dorado
Las secuencias se pueden agregar a otros tipos de estructuras de datos, como mapeos o escalares.
Mapeos
Los mapeos te dan la capacidad de listar claves con valores. Esto es útil en casos en los que estás asignando un nombre o una propiedad a un elemento específico.
animal: mascotas
Este ejemplo asigna el valor de mascotas
a la clave animal
. Cuando se utiliza junto con una secuencia, puedes ver que estás comenzando a construir una lista de mascotas
. En el siguiente ejemplo, el guion utilizado para etiquetar cada elemento cuenta como sangría, haciendo que los elementos de la línea sean los hijos y la línea de mapeo mascotas
el padre.
mascotas:
- Gato
- Perro
- Pez dorado
Recursos y Documentación Adicional
Para obtener más información sobre YAML, incluida documentación detallada sobre cómo funciona, consulta los recursos vinculados a continuación.