100 % locale — i tuoi dati non lasciano mai il tuo browser

Validatore YAML — la riga in cui si ferma

Controlla che un YAML venga analizzato: indentazione, virgolette, ancore, chiavi doppie. Quando si ferma, hai la riga e sai dove guardare.

Istantaneo Privato Zero cookie

Input YAML

Output Result

Che cosa verifica questo strumento

Che il documento si analizzi — cosa che in YAML comprende più di quanto sembri:

  • l’indentazione è coerente ed è fatta di spazi;
  • le virgolette sono chiuse e gli scalari di blocco (|, >) correttamente indentati;
  • ogni alias *nome ha un’ancora &nome a cui puntare;
  • nessuna mappa porta due volte la stessa chiave;
  • i separatori --- producono documenti interi.

Se passa, ottieni la forma della radice e la dimensione. Altrimenti il messaggio del parser con riga e colonna — e i parser YAML sono particolarmente bravi a dire dove.

Validatore, verificatore, parser — e .yml contro .yaml

Verificatore di sintassi, verificatore di formato, parser, tester, validatore: cinque nomi per una sola domanda — questo documento si analizza? È ciò che accade quando incolli.

.yml e .yaml sono la stessa lingua, non due varianti. L’estensione è un’abitudine: il progetto YAML chiede .yaml, mentre un’intera generazione di strumenti ha scritto .yml per prima e non si è più mossa. Docker Compose legge entrambe, GitHub Actions legge entrambe, e anche questa pagina — nulla dentro il file dice con quale grafia è arrivato.

La tabulazione non è indentazione

Una tabulazione occupa otto colonne, o quattro, o due, secondo chi guarda. Un’indentazione fatta di tabulazioni non ha quindi significato definito, e in YAML l’indentazione è la struttura. La specifica le vieta; questo strumento anche.

Dentro uno scalare tra virgolette una tabulazione è solo un carattere e va benissimo. Solo il margine sinistro è il problema.

Le chiavi doppie sono un errore

port: 8080
host: example.com
port: 3000

La specifica esige che le chiavi di una mappa siano uniche. Molti parser lo ignorano e tengono l’ultima: è così che un file di configurazione gira in silenzio su un valore che avevi dimenticato di aver scritto due volte. Qui è un errore, con la riga della seconda.

Un flusso di più documenti è valido

--- separa i documenti, e un file può contenerne quanti vuole. Il rapporto dice quanti. Un manifesto Kubernetes è di solito un flusso, e un flusso non è un errore di sintassi.

Che cosa non verifica

Che il documento voglia dire qualcosa.

Un file può essere YAML perfetto e un Compose rotto: un servizio senza immagine, una chiave scritta enviroment, una porta tra virgolette dove serviva un numero. Nulla di ciò è sintassi, e nulla qui lo intercetterà.

Né decide che cosa significhi una parola nuda. yes è la stringa yes per un lettore YAML 1.2 e il booleano vero per uno 1.1, ed entrambi leggono YAML valido — una differenza che questo validatore non può sciogliere al posto tuo, perché dipende da chi leggerà il file dopo.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Perché le tabulazioni sono rifiutate come indentazione?
Perché una tabulazione non ha larghezza definita: un’indentazione fatta di tabulazioni non ha quindi significato definito — e in YAML l’indentazione è tutta la struttura. La specifica le vieta senz’altro. Una tabulazione dentro un valore tra virgolette non dà fastidio; solo l’indentazione è il problema, ed è per questo che il messaggio indica riga e colonna.
Perché una chiave doppia è un errore e non «vince l’ultima»?
Perché la specifica YAML esige chiavi uniche, e «vince l’ultima» è il modo in cui una configurazione ignora in silenzio metà di ciò che hai scritto. Se un file mette `port: 8080` in alto e `port: 3000` in basso, vuoi che te lo dicano, non passare un pomeriggio a capire quale sia in esecuzione.
Verifica il mio docker-compose o il mio file Kubernetes?
No. Verifica che l’YAML si analizzi. Un file può essere YAML impeccabile e un Compose inservibile: un servizio senza immagine, una chiave scritta male, una porta tra virgolette dove ci si aspettava un numero. La validazione con schema richiede lo schema, ed è un altro strumento.

Convertitori correlati