Outils
Guides

Validateur et formateur YAML

Formatage

Validez, normalisez ou compressez du YAML avec js-yaml. Réindente, uniformise les guillemets et sépare les flux multi-documents (---). Traitement YAML pur — aucune conversion de format.

100 % côté client Sans backend

Les URL distantes ne sont pas récupérées ; collez votre JSON directement.

Entrée
Sortie
Collez du YAML à gauche, puis choisissez Formater ou Compacter.
Sur cette page

Qu’est-ce qu’un formateur YAML ?#

Un formateur YAML prend un fichier de configuration qui a dérivé — tabulations mêlées aux espaces, pas d’indentation cohérent, guillemets utilisés par endroits mais pas ailleurs, une ancre que quelqu’un a définie et jamais réutilisée — et le normalise en une forme propre et prévisible. Il intercepte aussi la chose pour laquelle YAML est tristement célèbre : un document qui a l’air correct et signifie silencieusement tout autre chose, parce que YAML est sensible aux espaces et plein de règles implicites sur ce que veut dire un mot nu.

Cette page analyse votre YAML et le réémet via js-yaml de façon contrôlée. Formater réindente avec le pas que vous choisissez (2 ou 4 espaces), désactive le repliage des lignes afin que chaque valeur soit sur sa propre ligne, et déploie toutes les ancres et alias en contenu répété brut afin que la sortie soit pleinement autonome. Compacter réécrit les mêmes données en notation de flux{a: 1, b: [2, 3]} — qui est la forme la plus compacte que YAML possède, puisque YAML ne peut pas simplement supprimer ses espaces comme le font JSON ou CSS. Quel que soit le mode choisi, le document est d’abord analysé, donc une tabulation là où devrait figurer un espace, ou deux-points sans espace final, est signalé avec sa ligne et colonne au lieu de produire silencieusement la mauvaise structure de données.

Mode d’emploi#

  1. Collez votre YAML dans le panneau Entrée à gauche. L’espace réservé montre un document minimal, ou cliquez sur Exemple.
  2. Choisissez un bouton de Mode dans la barre d’outils :
    • Formater — réindenter, désactiver le repliage des lignes, déployer les ancres/alias, et émettre chaque collection en style bloc.
    • Compacter — émettre chaque collection en style flux sur le moins de lignes possible. L’indentation devient sans importance parce que les collections de flux sont explicites.
  3. En mode Formater, choisissez une Indentation : 2 ou 4 espaces.
  4. Choisissez facultativement un style de Guillemets : auto (ne guillemeter que quand un scalaire en a réellement besoin — le défaut), simples ou doubles. Cela normalise le caractère de guillemet sur les scalaires qui doivent être guillemetés ; cela ne force jamais des guillemets sur des valeurs brutes qui n’en ont pas besoin.
  5. Lisez le résultat dans le panneau Sortie. L’en-tête affiche la taille de sortie ; utilisez Copier pour le récupérer. Effacer réinitialise les deux panneaux.

Si l’analyse échoue, la barre d’état signale la ligne et la colonne du problème — les erreurs YAML de js-yaml portent une position, et cette page la surface directement.

Principales fonctionnalités#

  • Formater et compacter depuis la même analyse. Les deux modes valident le document d’abord, donc une erreur structurelle est signalée une fois avec une localisation, quel que soit le bouton que vous avez pressé.
  • Ancres déployées. Les références &ancre / *alias sont résolues et réécrites en ligne (noRefs), donc la sortie ne dépend jamais d’un nom défini trois écrans plus haut. Le résultat est un document autonome que vous pouvez remettre à n’importe qui.
  • Pas de repliage de ligne. Les longues valeurs ne sont pas coupées à une limite de colonne (lineWidth: -1), donc chaque valeur occupe exactement une ligne — plus facile à differ et à lire.
  • Normalisation optionnelle des guillemets. Choisissez des guillemets simples ou doubles pour rendre le caractère de guillemet cohérent dans tout le document, ou laissez sur auto pour que seules les valeurs qui ont réellement besoin de guillemets en reçoivent.
  • Conscient du multi-documents. Une entrée séparée par --- est analysée comme plusieurs documents et réémise avec les séparateurs --- intacts — pratique pour les manifestes Kubernetes et les fichiers multi-documents similaires.
  • Se défend contre les bombes YAML. Un plafond de profondeur d’imbrication empêche les documents pathologiquement profonds de se déplier en quelque chose de dangereux.
  • Strictement côté client, avec un Web Worker pour les entrées de plus de 1 Mo afin que la page reste réactive.

Exemple détaillé#

Une configuration de service avec une ancre réutilisée et un style légèrement inégal :

Entrée :

service:
  name: &name "api-gateway"
  host:   example.com
  replicas: 3
  id: *name
logging:
  level: info
  outputs: [{name: stdout}, {name: file}]

Cliquez sur Formater avec 2 espaces et guillemets auto :

service:
  name: api-gateway
  host: example.com
  replicas: 3
  id: api-gateway
logging:
  level: info
  outputs:
    - name: stdout
    - name: file

Deux choses se sont produites que vous pouvez voir. L’ancre &name et l’alias *name ont tous deux été résolus en la valeur littérale api-gateway, donc id se lit désormais comme une valeur brute et le document ne dépend plus de l’ancre. Et la liste en style flux [{name: stdout}, {name: file}] a été réécrite en liste bloc, une entrée par ligne — beaucoup plus facile à scanner et à comparer avec une autre version. Cliquez sur Compacter sur la même entrée et les mêmes données reviennent en forme de flux :

service: {name: api-gateway, host: example.com, replicas: 3, id: api-gateway}
logging: {level: info, outputs: [{name: stdout}, {name: file}]}

Chaque collection est désormais en ligne. Le compte d’octets baisse parce que l’indentation et les sauts de ligne ont disparu, mais le sens est identique — ce qui est exactement ce que compacter devrait signifier pour un format sensible aux espaces.

FAQ#

Où sont passés mes commentaires ?#

L’aller-retour YAML via js-yaml analyse les commentaires et les abandonne — il n’y a pas de réémetteur préservant les commentaires dans la bibliothèque. Les commentaires sont tolérés pendant l’analyse (ils ne provoquent jamais d’erreur) mais ils n’apparaissent pas dans la sortie. Si les commentaires portent un contexte important, conservez votre fichier d’origine comme source de vérité et traitez la sortie de cet outil comme la forme machine canonique.

Quelle est la différence entre Formater et Compacter pour YAML ?#

Formater réécrit le document en style bloc propre : tables de hachage et séquences imbriquées indentées avec le pas que vous avez choisi, une valeur par ligne, pas de repliage. Compacter réécrit les mêmes données en style flux : collections {key: value} et [a, b] sur une seule ligne. Les deux analysent à l’identique d’abord ; ils ne diffèrent que par la façon dont les données sont sérialisées en retour.

En quoi cela diffère-t-il du convertisseur YAML/JSON ?#

Cet outil est du YAML en entrée, du YAML en sortie — il normalise ou compacte un document YAML et rend du YAML. Le convertisseur YAML/JSON de ce site traduit entre les deux formats. Utilisez cette page quand vous voulez le même format, juste mieux disposé ; utilisez le convertisseur quand vous voulez réellement du JSON.

Mon YAML est-il téléversé quelque part ?#

Non. js-yaml est embarqué dans la page et s’exécute dans votre navigateur. Pour les entrées de plus de 1 Mo, l’analyse se fait à l’intérieur d’un Web Worker, mais toujours localement — rien ne quitte votre appareil.