Aller au contenu

Formateur et validateur YAML

YAML Formatter & Validator

Réindente le YAML de façon cohérente, le valide et signale les tabulations et les ancres qui font échouer les analyseurs.

Réindente un fichier YAML de façon cohérente et vous dit ce qu'un autre analyseur lirait différemment. C'est un lecteur YAML 1.2 qui garde les commentaires, les ancres, les tags et les scalaires en bloc : la sortie est votre document avec la mise en page corrigée — pas un aller-retour par un modèle de données qui aurait jeté vos commentaires.

🔒 Fonctionne entièrement dans votre navigateuryamlformatvalidateconfig
Sortie
Indentation

YAML en entrée

Déposez un fichier .yaml

Lu dans cet onglet seulement. Rien n’est envoyé.

YAML mis en forme

Mis en forme.

Lu, mais les analyseurs peuvent diverger sur ces points

  • 19:22 — `no` est la chaîne "no" en YAML 1.2. Un analyseur YAML 1.1 le lit comme un booléen — mettez-le entre guillemets, ou écrivez true/false, pour que les deux concordent.

Documents

1

Clés

30

Éléments de liste

8

Ancres / alias

1 / 1

Avertissements

1

Ce que ce formateur fait et ce qu’il ne fait pas

  • · Lu avec le schéma core de YAML 1.2. yes et no et on et off sont des chaînes, et 0755 vaut 755 en décimal, pas en octal. Les valeurs qu’un analyseur 1.1 lirait autrement sont signalées en avertissement ci-dessus.
  • · Les commentaires, les ancres (&), les alias (*), les tags et les scalaires de bloc | et > sont tous conservés. L’ordre des valeurs n’est pas modifié non plus.
  • · Une indentation par tabulations, des clés en double, un alias employé avant d’être défini et un guillemet non fermé sont tous relevés comme des erreurs, avec leur ligne et leur colonne.
  • · La clé de fusion << relève de YAML 1.1, mais docker-compose et Ansible l’emploient si largement qu’elle est appliquée lors de la conversion vers JSON — avec un avertissement qui le dit.
  • · Un commentaire à l’intérieur d’une collection en flux comme [a, b] n’a aucune ligne à laquelle se rattacher et disparaît. Tous les autres commentaires survivent.

Pour convertir vers JSON ou TOML, utilisez le convertisseur JSON ⇄ YAML, et pour vérifier un document face à un schéma, utilisez le validateur JSON Schema.

Comment s’en servir

  1. Collez le manifeste ou la configuration

    Un manifeste Kubernetes, un fichier de CI, un docker-compose. Plusieurs documents séparés par `---` sont lus comme un flux et comptés séparément.

  2. Choisissez le style de liste

    Le seul réglage sur lequel les gens se disputent vraiment : `- item` au même niveau que sa clé, ou indenté en dessous. Les deux sont du YAML valide ; les manifestes Kubernetes emploient par convention la forme au même niveau.

  3. Lisez les avertissements

    Les valeurs dont le sens dépend de la version de YAML qu'implémente le lecteur — `yes`, `no`, `0755` — sont listées avec une ligne et une colonne. Ce sont celles qui cassent un déploiement sur un autre outil.

  4. Ou basculez la sortie en JSON

    La même analyse, rendue en JSON, ce qui est le moyen le plus rapide de voir à quoi une valeur s'est réellement résolue — y compris ce en quoi une clé de fusion s'est développée.

Questions fréquentes

Pourquoi `no` est-il une chaîne ici ?

Parce que le schéma de base de YAML 1.2 le dit : les seuls booléens sont `true` et `false`. YAML 1.1 — ce que PyYAML fait encore par défaut — lit `no`, `off` et `n` comme faux. Toute valeur sur laquelle les deux divergent est signalée par un avertissement, parce que c'est une vraie différence de comportement, pas une différence de style.

Mes ancres et alias sont-ils conservés ?

Dans la sortie YAML, oui — `&res` et `*res` ressortent tels que vous les avez écrits, et leur nombre figure dans les statistiques. La vue JSON doit les développer, parce que JSON n'a aucun moyen de dire « encore le même nœud ».

Prend-il en charge les clés de fusion ?

`<<:` est une fonctionnalité de YAML 1.1, absente de la 1.2 — mais les fichiers docker-compose et Ansible s'en servent en permanence : elle est donc appliquée lors de la conversion en JSON, avec un avertissement disant que c'est ce qui s'est passé. Dans la sortie YAML, elle est laissée exactement telle qu'écrite.

Un commentaire a disparu. Pourquoi ?

Il était presque sûrement à l'intérieur d'une collection en flux — `[a, # note\n b]`. Une collection en flux est réimprimée sur une seule ligne, et un commentaire n'y a aucune ligne à laquelle s'accrocher. Tout commentaire sur sa propre ligne, ou en fin de valeur, survit.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.