YAML: sangría y separación

La sangría y la separación son dos conceptos principales cuando está aprendiendo cualquier lenguaje de programación. Este capítulo trata en detalle estos dos conceptos relacionados con YAML.

Sangría de YAML

YAML no incluye espacios obligatorios. Además, no es necesario ser coherente. La sangría válida de YAML se muestra a continuación:

a:
   b:
      - c
      -  d
      - e
f:
      "ghi"
  • Debe recordar las siguientes reglas al trabajar con sangría en YAML: Los bloques de flujo deben tener al menos algunos espacios con el nivel de bloque actual circundante.

  • El contenido de flujo de YAML abarca varias líneas. El comienzo del contenido de flujo comienza con{ o [.

  • Los elementos de la lista de bloques incluyen la misma sangría que el nivel de bloque circundante porque - se considera parte de la sangría.

Ejemplo de bloque previsto

Observe el siguiente código que muestra la sangría con ejemplos:

--- !clarkevans.com/^invoice
invoice: 34843
date   : 2001-01-23
bill-to: &id001
   given  : Chris
   family : Dumars
   address:
      lines: |
            458 Walkman Dr.
            Suite #292
      city    : Royal Oak
      state   : MI
      postal  : 48046
ship-to: *id001
product:
    - sku         : BL394D
      quantity    : 4
      description : Basketball
      price       : 450.00
   - sku         : BL4438H
      quantity    : 1
      description : Super Hoop
      price       : 2392.00
tax  : 251.42
total: 4443.52
comments: >
    Late afternoon is best.
    Backup contact is Nancy
    Billsmer @ 338-4338.

Separación de cuerdas

Las cadenas se separan mediante una cadena entre comillas dobles. Si escapa de los caracteres de nueva línea en una cadena determinada, se elimina por completo y se traduce en un valor de espacio.

Ejemplo

En este ejemplo, hemos enfocado la lista de animales listados como una estructura de matriz con el tipo de datos de cadena. Cada nuevo elemento se enumera con un prefijo de guión como se menciona como prefijo.

-
 - Cat
 - Dog
 - Goldfish
-
 - Python
 - Lion
 - Tiger

Otro ejemplo para explicar la representación de cadenas en YAML se menciona a continuación.

errors:
      messages:
         already_confirmed: "was already confirmed, please try signing in"
         confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
         expired: "has expired, please request a new one"
         not_found: "not found"
         not_locked: "was not locked"
         not_saved:
            one: "1 error prohibited this %{resource} from being saved:"
            other: "%{count} errors prohibited this %{resource} from being saved:"

Este ejemplo se refiere al conjunto de mensajes de error que un usuario puede utilizar con solo mencionar el aspecto clave y obtener los valores en consecuencia. Este patrón de YAML sigue la estructura de JSON que puede ser entendido por el usuario que es nuevo en YAML.