araç köşesi

Formater et valider du YAML

Vérifier un fichier YAML et le réécrire avec une indentation propre ; en cas d'erreur, voir la ligne et la cause

Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.

Comment ça marche

En YAML, une seule espace mal placée rend tout le fichier invalide : docker compose up ou un workflow GitHub Actions s'arrête avec un message bref comme "yaml: line 7". Collez le contenu du fichier dans la zone de gauche. Si le texte est invalide, l'outil donne la ligne de la première erreur et sa cause en mots simples : une tabulation dans l'indentation, une clé écrite deux fois dans le même bloc, un guillemet ou un crochet non fermé, ou des lignes de même niveau qui commencent par un nombre d'espaces différent. Si le texte est valide, il est réécrit à droite avec une indentation régulière : dans l'exemple, la ligne image décalée de 8 espaces revient à 4, les éléments de liste (- "8080:80") sont indentés de deux espaces sous leur clé, et les espaces en trop disparaissent. Les commentaires écrits avec #, l'ordre des clés et les documents séparés par --- restent tels quels. La ligne de résultat donne le nombre de documents et de lignes.

Cet outil est aussi connu sous le nom de formater yaml, valider yaml, yaml formatter, yaml validator, valider docker compose yaml.

Qu'est-ce que YAML ?

YAML (YAML Ain't Markup Language) est un format de données conçu pour les fichiers de configuration, lisible et modifiable à la main. Au lieu d'accolades et de guillemets, il utilise l'indentation : les lignes clé: valeur et les éléments de liste commençant par - s'imbriquent selon leur décalage. Les réglages de docker-compose, GitHub Actions, Kubernetes, Ansible et Home Assistant s'écrivent en YAML. Contrairement au JSON, il accepte les commentaires (#).

Qu'est-ce que Indentation ?

En YAML, l'indentation est le nombre d'espaces au début d'une ligne, et c'est de la structure, pas de la décoration : les lignes placées sous une clé avec plus d'espaces font partie de cette clé. Les lignes d'un même niveau doivent commencer par le même nombre d'espaces. Le nombre choisi est libre (2 est le plus courant), mais une tabulation n'est jamais acceptée comme indentation.

Quelle différence entre YAML et JSON ?

Les deux transportent les mêmes types de données (clés et valeurs, listes, nombres, texte), et tout document JSON est aussi du YAML valide. La différence est dans l'écriture : le JSON construit la structure avec des accolades et des crochets, le YAML avec l'indentation. Le YAML accepte les commentaires et le texte sans guillemets, d'où sa préférence pour les fichiers de configuration modifiés à la main. Le JSON est plus strict et sert aux échanges entre programmes et aux API. Pour passer de l'un à l'autre, utilisez l'outil JSON vers YAML.

Les erreurs YAML les plus courantes et leur sens

YAML lit l'indentation comme du sens : le nombre d'espaces au début d'une ligne décide à quelle clé elle appartient. C'est pourquoi le caractère de tabulation inséré par la touche Tab est interdit ; il ressemble à des espaces, mais YAML le refuse. Si deux lignes de même niveau commencent par 2 et 3 espaces, le fichier échoue ou prend une structure différente de celle prévue.

La deuxième erreur fréquente est la clé en double : écrire ports: deux fois dans le même bloc. Certains programmes l'acceptent sans rien dire et gardent la seconde, votre premier réglage est perdu ; cet outil suit la règle YAML 1.2, signale une erreur et montre la ligne. La troisième est l'espace oubliée après les deux-points : image:nginx n'est pas une clé et une valeur, mais un seul texte.

  • « la tabulation est interdite » → remplacez la tabulation en début de ligne par des espaces
  • « clé en double » → supprimez ou fusionnez l'une des deux lignes
  • « guillemet non fermé » → comptez les " ou ' de la ligne

Que change la réécriture, que conserve-t-elle ?

L'outil lit le fichier et réécrit les mêmes données : l'indentation devient régulière, les éléments de liste passent un niveau sous leur clé, les espaces en trop avant les commentaires se réduisent à une. Clés, valeurs, commentaires et ordre des clés sont conservés ; un texte entre guillemets comme "false" garde ses guillemets, car les retirer en ferait une valeur booléenne.

Le tri alphabétique est facultatif et trie chaque bloc séparément ; un commentaire placé au-dessus d'une clé la suit. Dans les fichiers docker-compose ou Kubernetes, l'ordre n'a pas de sens technique, mais il existe un ordre de lecture habituel (image d'abord, ports ensuite) ; c'est pourquoi l'ordre est conservé par défaut.

Questions fréquentes

Comment savoir si mon fichier YAML est valide ?

Collez son contenu dans la zone de gauche de cette page. S'il est valide, la ligne de résultat affiche « YAML valide » et le fichier apparaît à droite avec une indentation propre. Sinon, vous voyez le numéro de ligne et la cause de la première erreur.

Mes commentaires sont-ils supprimés ?

Non. Les lignes de commentaire commençant par # et les commentaires en fin de ligne restent à leur place. Une conversion en JSON supprimerait les commentaires ; cet outil réécrit le YAML en YAML et les garde.

Est-ce adapté à docker-compose.yml et aux fichiers GitHub Actions ?

Oui. L'outil vérifie les règles générales du YAML ; les fichiers docker-compose, GitHub Actions, Kubernetes, Ansible et Home Assistant sont tous du YAML. Il ne vérifie pas si une clé est valide pour le programme concerné, par exemple une option docker mal orthographiée.

Mon fichier est-il envoyé à un serveur ?

Non. La validation et la mise en forme se font entièrement dans votre navigateur ; le texte collé ne quitte pas cette page, même s'il s'agit d'un fichier de configuration avec des mots de passe ou des clés.