YAML, acronimo di "yet another markup language" o "YAML ain't markup language", è un formato pensato appositamente per i dati, non per i documenti. YAML è un linguaggio di serializzazione dei dati utilizzato per scrivere file di configurazione per il deployment dell'infrastruttura. Ad esempio, per distribuire un'applicazione Docker su Kubernetes, si può utilizzare un file YAML per configurare l'istanza. Essendo un linguaggio leggibile, è facile da usare per creare un file di istruzioni da eseguire durante il deployment.
Se non hai esperienza con i file YAML, non ci metterai molto a capire che serve un modo per spezzare le stringhe in più righe (e infatti questo è uno dei dubbi più frequenti che trovi sul web quando si parla di YAML). In questo articolo descriveremo i due metodi principali per scrivere stringhe multiriga in YAML e risponderemo ad altre domande frequenti.
YAML e gli spazi: cosa c'è da sapere
I file YAML utilizzano spazi e ritorni a capo, ma quando vengono inseriti in una risorsa specifica, i contenuti vengono serializzati. Gli sviluppatori che compilano i file YAML possono formattare il testo con i rientri e le spaziature per renderlo più leggibile. YAML considera gli spazi come fanno gli altri linguaggi in modo da avere il numero giusto per formattare il file.
Come dividere le righe in YAML
Quando inserisci i file YAML, è possibile che voglia mantenere le interruzioni di riga sotto forma di stringa multiriga. Prendiamo questo codice fittizio come esempio:
key:
item1
item2
item3
Dopo ogni voce (item1, item2 e item3), è presente un ritorno a capo. Lasciando la sintassi YAML così com'è, la stringa avrebbe il formato seguente:
item1 item2 item3
Questo formato crea una stringa lunga senza ritorno a capo, né interruzioni di riga. Per mantenerle, puoi utilizzare l'operatore letterale pipe, che corrisponde alla barra verticale (I). Quindi, per mantenere le interruzioni di riga, la sintassi YAML va modificata come segue:
key: |
item1
item2
item3
L'operatore pipe è stata inserito dopo l'istruzione "key". Quando l'applicazione acquisisce il file YAML, la stringa verrà convertita nel formato seguente:
item1\nitem2\nitem3
Il carattere "\n" rappresenta una nuova riga. In questo modo ogni voce sarà seguita da un ritorno a capo, mantenendo il formato delle istruzioni YAML.
Differenza tra blocchi multiriga e stringhe lunghe
Per le stringhe lunghe, devi utilizzare blocchi multiriga per leggere un file YAML. Ad esempio, se un file YAML contiene un paragrafo di 250 parole, devi dividere le frasi in blocchi multiriga. Il ritorno a capo va mantenuto solo alla fine del paragrafo. Puoi formattare il file YAML in modo da utilizzare più righe per le stringhe lunghe e serializzare la stringa in modo da aggiungere gli spazi alla fine di ogni voce al posto di un carattere di nuova riga.
Per usare lo spazio al posto del carattere di nuova riga, inserisci l'operatore di fold (>):
key: >
item1
item2
item3
Con l'operatore di fold, YAML ha aggiunto uno spazio quando crea la stringa. La stringa assume il formato seguente:
item1 item2 item3\n
Domande frequenti sul formato multiriga YAML
Come si può inserire un'interruzione di riga in YAML?
Basta utilizzare un operatore letterale (|) per mantenere le interruzioni di riga in una stringa YAML. In questo modo si crea un'interruzione con ritorno a capo come in un documento standard. Ecco un codice di esempio per mantenere il ritorno a capo:
key: |
item1
item2
item3
Un file YAML può contenere righe vuote?
Sì, una stringa rappresentata da un blocco di testo può contenere anche righe vuote. L'operatore di keep (|+) mantiene le righe vuote presenti con il carattere di nuova riga. Ecco un esempio di stringa multiriga con due righe vuote alla fine del blocco:
key: |+
item1
item2
item3
Un parser YAML dalla sintassi precedente ricaverà questa stringa:
item1\nitem2\nitem3\n\n
La sintassi YAML considera gli spazi?
La tabulazione non è consentita in YAML, per questo è necessario utilizzare i rientri con uno spazio semplice. Le tabulazioni sono ammesse nelle stringhe tra virgolette, ma non possono essere utilizzate per formattare un file YAML file. La coerenza dei rientri con spazio è importante per la leggibilità dei dati.
Gli spazi sono consentiti in YAML?
Sì, un file YAML può contenere gli spazi, che devono essere usati per i rientri. Le tabulazioni non sono consentite perché possono causare errori durante l'analisi del file YAML.