Cosa fa il formattatore YAML
Lo YAML è il formato dei file Docker Compose, dei manifest Kubernetes, dei workflow di GitHub Actions, dei playbook Ansible e di molte configurazioni di applicazioni. La sua struttura dipende dall’indentazione, quindi un solo spazio fuori posto può cambiare il significato di un file o bloccare un deploy. Questo formattatore YAML riscrive il tuo YAML con rientri e spaziature coerenti e lo controlla con un parser rigoroso, così i problemi emergono qui invece che nella pipeline.
Ha due azioni:
- Formatta uniforma i rientri, gli spazi dopo i due punti e i trattini, e la spaziatura dentro
[ ]e{ }. - Convalida analizza il file e segnala il primo errore, oppure mostra un breve riepilogo se è valido.
Come si usa
- Incolla lo YAML nel riquadro a sinistra. Viene formattato appena lo incolli. Puoi anche usare Apri file per i file
.yamle.yml, oppure Esempio per un esempio. - Scegli un Rientro di 2 o 4 spazi e una Larghezza riga.
- Attiva Virgolette singole se il tuo progetto preferisce
'text'a"text". - Premi Formatta o Convalida. Ctrl+Invio ripete l’ultima azione.
- Premi Copia, oppure Scarica per salvare un file
.yaml.
Prima e dopo
Un file Docker Compose con spaziatura irregolare e rientri di 4 spazi:
version: "3.8"
services:
web:
image: "nginx:latest"
ports:
- "80:80"
environment:
- DEBUG=false
db:
image: postgres:16
Dopo Formatta con 2 spazi:
version: "3.8"
services:
web:
image: "nginx:latest"
ports:
- "80:80"
environment:
- DEBUG=false
db:
image: postgres:16
Le collezioni in stile flow ricevono una spaziatura uniforme. tags: [ api, v2 ] e limits: {cpu: 1, memory: 512} diventano:
tags: [api, v2]
limits: { cpu: 1, memory: 512 }
I commenti sopravvivono. Gli spazi in eccesso prima di un commento a fine riga vengono sistemati, ma il commento resta sulla sua riga:
# Database settings
db:
host: localhost # local only
port: 5432
Con Virgolette singole attivo, name: "web" diventa name: 'web'. Una stringa che contiene un apostrofo, come "it's here", mantiene le virgolette doppie così non serve alcun escape.
Gli errori che il validatore individua
I parser YAML dei vari strumenti non sono tutti ugualmente rigorosi. Questo segnala problemi che alcuni strumenti lasciano passare. Messaggi reali dello strumento (in inglese):
| Problema | Messaggio |
|---|---|
| La stessa chiave due volte | Riga 3, colonna 1: Map keys must be unique |
| Una tabulazione usata come rientro | Riga 2, colonna 1: Tabs are not allowed as indentation |
| Una riga rientrata di uno spazio di troppo | Riga 2, colonna 9: Nested mappings are not allowed in compact mappings |
Il controllo delle chiavi duplicate è il più importante. In un file come name: web, port: 80, name: api, molti loader tengono solo l’ultimo name senza alcun avviso. Premi Mostra nell’input per andare alla riga.
Per un file valido con due documenti separati da ---, Convalida riporta: YAML valido. 2 documenti.
Consigli e limiti
- Il formattatore non riordina le chiavi e non cambia i valori.
yes,one010restano come li hai scritti. - Le stringhe lunghe non vengono mandate a capo di nuovo. I blocchi folded (
>) e literal (|) mantengono il loro contenuto. - Ancore e alias (
&name,*name) restano come li hai scritti. - Lo YAML non ha una forma minificata di uso comune, quindi non c’è il pulsante Minifica. Se ti servono dati compatti, convertili con il convertitore da JSON a YAML nella direzione da YAML a JSON.
Altri modi per formattare lo YAML
VS Code. L’estensione YAML di Red Hat aggiunge la formattazione e il controllo con schema per file come i manifest Kubernetes. Dopo averla installata, esegui Format Document.
yq. La versione in Go di yq (di Mike Farah) legge e riscrive lo YAML. yq '.' file.yaml ristampa il file nel suo stile coerente, e lo stesso strumento può interrogare e modificare i valori.
Prettier. Se il tuo progetto usa già Prettier, formatta i file .yaml e .yml con le stesse regole di questa pagina.
yamllint. Uno strumento Python che controlla stile e sintassi senza riscrivere il file, utile nella CI.
Strumenti correlati
Per trasformare JSON in YAML o viceversa usa il convertitore da JSON a YAML. Per i file JSON usa il formattatore JSON. Per le configurazioni XML come i file Maven o Android usa il formattatore XML.