YAML, acronimo di YAML Ain't Markup Language, è un formato di serializzazione dati leggibile dall'uomo.
Le chiavi di primo livello sono separati dai valori da due punti e uno spazio, la coppia chiave/valore è chiamata mapping.
Una chiave può avere come valore un altro mapping, in questo caso il mapping di secondo livello deve essere indentato di due spazi (non usare il tab).
invoice number: 314159
name: Santa Claus
address:
street: Santa Claus Lane
zip: 12345
city: North Pole
Una chiave può avere come valore una lista, in questo caso ogni elemento della lista è preceduto da uno spazio:
order items:
- Sled # l'indentazione si potrebbe anche evitare
- Wrapping Paper
Literal Block Scalar e Folded Block Scalar
steps:
- uses: actions/checkout@v2
- name: Run Tests
run: | # Literal Block Scalar
./configure
make
make test
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: > # Folded Block Scalar
apt-get update
&& apt-get install -y
git tig vim jq tmux tmate git-subrepo cpanminus
cpanm -n -l local
YAML::PP YAML::XS ... # i tre puntini indicano la fine del documento
Se un file contiene più "documenti" si può usare il carattere --- per separarli:
--- # il primo è opzionale
invoice number: 314159
name: Santa Claus
address: North Pole
---
invoice number: 314160
name: Santa Claus
address: North Pole
---
invoice number: 314161
name: Santa Claus
address: North Pole
Directives
La Version directive è usata per indicare la versione di YAML utilizzata
%YAML 1.2
---
invoice number: 314159
name: Santa Claus
address: North Pole
...
%YAML 1.2
---
invoice number: 314160
name: Santa Claus
address: North Pole
...