100 % local — vos données ne quittent jamais votre navigateur

Validateur YAML — la ligne où ça s’arrête

Vérifiez qu’un YAML se parse : indentation, guillemets, ancres, clés en double. Quand ça s’arrête, vous avez la ligne, donc où regarder.

Instantané Privé Zéro cookie

Entrée YAML

Sortie Result

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 *nom a 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.

Questions fréquentes

Pourquoi les tabulations sont-elles refusées en indentation ?
Parce qu’une tabulation n’a pas de largeur définie : une indentation faite de tabulations n’a donc pas de sens défini — et l’indentation est toute la structure de YAML. La spécification les interdit purement et simplement. Une tabulation dans une valeur entre guillemets ne pose aucun problème : seule l’indentation compte, d’où la ligne et la colonne dans le message.
Pourquoi une clé en double est-elle une erreur plutôt qu’un « la dernière gagne » ?
Parce que la spécification YAML exige des clés uniques, et que « la dernière gagne » est la façon dont une configuration ignore en silence la moitié de ce que vous avez écrit. Si un fichier pose `port: 8080` en haut et `port: 3000` en bas, vous voulez qu’on vous le dise, pas passer un après-midi à chercher lequel tourne.
Cela vérifie-t-il mon fichier docker-compose ou Kubernetes ?
Non. Cela vérifie que le YAML s’analyse. Un fichier peut être du YAML irréprochable et un fichier Compose inutilisable : un service sans image, une clé mal orthographiée, un port en chaîne là où un nombre était attendu. La validation par schéma demande le schéma, et c’est un autre outil.

Convertisseurs associés