Ce que vérifie cet outil
Que le document s’analyse — ce qui, en YAML, recouvre davantage que ça n’en a l’air :
- l’indentation est cohérente, et faite d’espaces ;
- les guillemets sont refermés, et les scalaires de bloc (
|,>) correctement indentés ; - chaque alias
*noma une ancre&nomà désigner ; - aucun dictionnaire ne porte deux fois la même clé ;
- les séparateurs
---produisent des documents entiers.
Quand ça passe, vous obtenez la forme de la racine et la taille. Sinon, le message de l’analyseur avec la ligne et la colonne — et les analyseurs YAML sont particulièrement bons pour dire où.
Validateur, vérificateur, parseur — et .yml face à .yaml
Vérificateur de syntaxe, vérificateur de format, parseur, testeur, validateur : cinq noms pour une seule question — ce document se parse-t-il ? C’est ce qui se passe quand vous collez.
.yml et .yaml sont la même langue, pas deux variantes. L’extension est une habitude : le projet YAML demande .yaml, quand toute une génération d’outils a écrit .yml d’abord et n’en a jamais bougé. Docker Compose lit les deux, GitHub Actions lit les deux, et cette page aussi — rien dans le fichier ne dit sous quelle orthographe il est arrivé.
La tabulation n’est pas de l’indentation
Une tabulation fait huit colonnes, ou quatre, ou deux, selon qui regarde. Une indentation faite de tabulations n’a donc pas de sens défini, et en YAML l’indentation est la structure. La spécification les interdit ; cet outil aussi.
À l’intérieur d’un scalaire entre guillemets, une tabulation n’est qu’un caractère, et tout va bien. Seule la marge de gauche pose problème.
Les clés en double sont une erreur
port: 8080
host: example.com
port: 3000
La spécification exige que les clés d’un dictionnaire soient uniques. Beaucoup d’analyseurs l’ignorent et gardent la dernière : c’est ainsi qu’un fichier de configuration tourne en silence sur une valeur que vous aviez oublié avoir écrite deux fois. Ici c’est une erreur, avec la ligne de la seconde.
Un flux de plusieurs documents est valide
--- sépare les documents, et un fichier peut en contenir autant qu’il veut. Le rapport dit combien. Un manifeste Kubernetes est en général un flux, et un flux n’est pas une erreur de syntaxe.
Ce qu’il ne vérifie pas
Que le document veuille dire quelque chose.
Un fichier peut être du YAML parfait et un Compose cassé : un service sans image, une clé écrite enviroment, un port entre guillemets là où un nombre était attendu. Rien de tout cela n’est de la syntaxe, et rien ici ne l’attrapera.
Il ne décide pas non plus du sens d’un mot nu. yes est la chaîne yes pour un lecteur YAML 1.2 et le booléen vrai pour un lecteur 1.1, et tous deux lisent du YAML valide — une différence que ce validateur ne peut pas trancher à votre place, puisqu’elle dépend de qui lira le fichier ensuite.
Confidentiel par conception
Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.