yaml

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.