Vai al contenuto
Case Converter Online
it

Formattatore e validatore YAML

Incolla lo YAML per sistemare rientri e spaziature, oppure controllalo prima del deploy. I commenti vengono conservati e i problemi segnalati con riga e colonna.

Incolla il codice YAML o premi Esempio. Premi Ctrl e Invio per formattare. Tutto funziona nel tuo browser.

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

  1. Incolla lo YAML nel riquadro a sinistra. Viene formattato appena lo incolli. Puoi anche usare Apri file per i file .yaml e .yml, oppure Esempio per un esempio.
  2. Scegli un Rientro di 2 o 4 spazi e una Larghezza riga.
  3. Attiva Virgolette singole se il tuo progetto preferisce 'text' a "text".
  4. Premi Formatta o Convalida. Ctrl+Invio ripete l’ultima azione.
  5. 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, on e 010 restano 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.

Formattatore YAML: domande e risposte

Perché non posso indentare lo YAML con le tabulazioni?

La specifica YAML non ammette il carattere di tabulazione per i rientri, solo gli spazi. Per questo il menu Rientro offre 2 o 4 spazi e nessuna opzione con tabulazioni, e per questo il validatore segnala le tabulazioni come errore.

I miei commenti vengono mantenuti?

Sì. I commenti restano dove sono. Il formattatore cambia solo spaziatura, rientri e disposizione delle righe. Chiavi e valori mantengono il loro ordine.

Il formattatore individua le chiavi duplicate?

Sì. Se la stessa chiave compare due volte nella stessa mappa, ricevi un errore come Map keys must be unique, con la riga della seconda chiave. Molti strumenti YAML tengono in silenzio solo l'ultimo valore, e così un errore può passare inosservato.

Gestisce i file con più documenti?

Sì. I documenti separati da --- vengono formattati insieme, e Convalida ti dice quanti documenti ha trovato.

È sicuro per i secret di Kubernetes o i file della CI?

Lo YAML viene elaborato nel tuo browser e non viene caricato. Detto questo, evita di incollare secret attivi in qualsiasi pagina web se la policy della tua azienda lo vieta.

Altri strumenti per codice e dati

Vedi tutti gli strumenti