Formattazione YAML

Strumento che uniforma il rientro di un documento YAML e sa convertirlo in JSON. Rileva anche le tabulazioni intrufolate e le incoerenze nei rientri.

Consigli

  • Lo strumento si serve di un analizzatore leggero scritto appositamente e prevede coppie di chiave e valore, annidamenti, elenchi e le forme in linea [a, b, c] e {a: 1}.
  • Anche incollando uno YAML con rientri disomogenei, di tre o cinque spazi, se l'analisi riesce potrete riprodurlo uniformato a due o quattro spazi.
  • La modalità di conversione in JSON mostra un'anteprima del contenuto YAML tradotto in JSON: comoda per il confronto con le configurazioni dell'integrazione continua e con le risposte delle interfacce.
  • In caso d'errore compare il numero di riga: verificate il rientro di quella riga oppure la mancanza dello spazio dopo i due punti.
  • La specifica YAML vieta i rientri con tabulazioni: impostando il vostro programma di scrittura in modo che le converta in spazi eviterete inconvenienti.

Domande frequenti

Per i file di configurazione che una persona modifica e revisiona a mano — configurazioni dell'integrazione continua, manifesti di Kubernetes — conviene YAML, che ammette i commenti ed è più leggibile. Per gli scambi fra programmi, come le risposte delle interfacce, è preferibile JSON, meno ambiguo e più rapido da analizzare.

La specifica vieta di usarle nel rientro e la maggior parte degli analizzatori interrompe l'elaborazione con un errore di sintassi. Conviene impostare il proprio programma di scrittura in modo che converta automaticamente le tabulazioni in spazi.

No. Si rivolge al sottoinsieme di uso comune — mappature, elenchi, forme in linea e tipi scalari fondamentali — che ricorre in Docker Compose, GitHub Actions e simili; funzioni avanzate come ancore, alias, documenti multipli e scalari a blocchi, con i segni | e >, non sono previste.

È la celebre insidia per cui, scrivendo senza virgolette no, yes, on oppure off, molte implementazioni li interpretano come valori logici e non come stringhe, per esempio il codice di quel paese. Per trattarli come testo occorre racchiuderli fra virgolette, scrivendo "no".
Tool-kun

A proposito — perché YAML si è imposto nei file di configurazione

YAML, il cui nome ricorsivo dichiara scherzosamente che «non è un linguaggio di marcatura», è un formato di serializzazione dei dati comparso nel 2001. Non richiedendo marcatori di chiusura come l'XML e presentandosi in forma assai più snella, dagli anni Dieci si è largamente affermato come formato dei file di configurazione dell'infrastruttura: Docker Compose, GitHub Actions, i manifesti di Kubernetes.

La scelta di esprimere la struttura con il rientro, però, se da un lato agevola la lettura, dall'altro rende facile guastare tutto con un copia e incolla. Se poi tabulazioni e spazi si mescolano, molti analizzatori non segnalano alcun errore e interpretano la struttura in modo sbagliato: un terreno fertile per errori di configurazione involontari.

C'è poi la celebre insidia detta «problema della Norvegia»: scrivendo senza virgolette il codice di quel paese, no, molte implementazioni lo interpretano come il valore logico falso. Anche il fatto che le versioni 1.1 e 1.2 della specifica considerino valori logici stringhe diverse contribuisce ai problemi di compatibilità fra le implementazioni.