Skip to content

YAMLYAML

Formateur YAML

Remettez de l’ordre dans un YAML brouillon — en gardant chaque commentaire.

YAML

Collez votre YAML ici ou déposez un fichier sur la page

YAML

YAML apparaît ici pendant la saisie

Gratuit et illimité · Sans inscription · Indentation, espacement et guillemets normalisés — chaque commentaire que vous avez écrit est conservé.

Ce qui est normalisé

  • L’indentation : chaque niveau est réécrit à deux ou quatre espaces, quel que soit le mélange d’origine, et une séquence imbriquée sous une clé est indentée sous cette clé.
  • Les espaces : un espace après un deux-points et après un tiret de liste, un espace avant un commentaire en fin de ligne, et les suites de lignes vides réduites à une seule.
  • Les fins de ligne et les espaces de fin : les fins de ligne Windows deviennent LF et les espaces en fin de ligne sont supprimés.
  • Les collections en style flux : [80, 443] devient [ 80, 443 ] ; elles restent sur une ligne au lieu d’être développées en style bloc.
  • Les nombres sans guillemets en YAML 1.2 : imprimés sous forme canonique, donc 022 devient 22, +1 devient 1 et 1e3 devient 1e+3. En mode YAML 1.1, les octaux à zéro initial comme 0644 sont conservés.
  • Les scalaires repliés (>) : remis en forme sur une ligne par paragraphe, en conservant les sauts de paragraphe.
  • L’ordre des clés : seulement si vous activez Trier les clés ; sinon les clés restent où vous les avez mises.

Ce qui reste exactement tel quel

  • Chaque commentaire : sur sa propre ligne, après une valeur ou en bloc entre deux sections.
  • Les guillemets : les simples restent simples, les doubles restent doubles, l’absence de guillemets reste une absence.
  • Les ancres, alias et clés de fusion : &defaults, *defaults et <<: sont conservés, pas développés.
  • Les scalaires littéraux (|) : ligne par ligne, sauts de ligne finaux compris.
  • L’ordre des séquences, toujours, et celui des clés sauf si vous triez.
  • Les séparateurs de documents (---) et les directives %YAML dans les fichiers multi-documents.
  • Les lignes longues : rien n’est replié, une URL ou une commande longue reste sur une seule ligne.
  • Les valeurs vides, ~, null et les booléens tels que vous les avez écrits : True reste True.

Pourquoi la plupart des formateurs suppriment vos commentaires

Presque tous les outils YAML en ligne fonctionnent de la même façon : analyser le document en données brutes, puis réimprimer ces données. Les commentaires ne sont pas des données, ils ne survivent donc jamais à l’aller-retour. Les fichiers de configuration contiennent souvent plus de commentaires que de configuration, et les perdre, c’est perdre le raisonnement derrière les valeurs.

Cette page utilise un analyseur différent du reste du site — un analyseur qui conserve un arbre syntaxique concret, de sorte que chaque commentaire reste attaché à la ligne qu’il documente. C’est aussi pour cela que le formateur est un peu plus strict sur la syntaxe : il doit comprendre la forme du document assez précisément pour le reconstruire fidèlement.

Commentaires et structure survivent tous les deux

L’indentation est normalisée à la largeur choisie ; les commentaires restent là où vous les avez mis.

Avant

# Production cluster
server:
      host:   0.0.0.0
      port: 8080   # internal only
features:
    - fast
    -    private

Après

# Production cluster
server:
  host: 0.0.0.0
  port: 8080 # internal only
features:
  - fast
  - private

D’autres avant / après

Chaque exemple de cette page se reformate exactement ainsi dans l’outil ci-dessus, avec l’indentation par défaut de deux espaces.

Ancres, alias et scalaires de bloc restent tels quels

Un fragment Docker Compose indenté à quatre espaces. L’ancre, la clé de fusion et le bloc littéral sont intacts ; seule l’indentation change.

Avant

x-defaults: &defaults
    restart: always
    logging: json

services:
    web:
        <<: *defaults
        image: nginx
        command: |
            sh -c "echo starting"
            exec nginx

Après

x-defaults: &defaults
  restart: always
  logging: json

services:
  web:
    <<: *defaults
    image: nginx
    command: |
      sh -c "echo starting"
      exec nginx

Clés triées pour des diffs lisibles

Le même fichier avec Trier les clés activé. Les clés sont ordonnées à chaque niveau, la séquence garde son ordre et le commentaire suit la clé qu’il décrit.

Avant

replicas: 3
name: api
# Ports the service exposes
ports:
  - 443
  - 80
image: api:1.2

Après

image: api:1.2
name: api
# Ports the service exposes
ports:
  - 443
  - 80
replicas: 3

Formateur, validateur ou convertisseur ?

Les trois utilisent le même moteur dans votre navigateur. Lequel choisir dépend de la destination du fichier.

Le formateur quand le fichier reste du YAML

Un fichier Compose, un values Helm ou un pipeline CI modifié par plusieurs personnes. Vous voulez une indentation cohérente et garder les commentaires qui expliquent les valeurs. C’est la seule chose qu’un aller-retour par un convertisseur ne peut pas offrir.

Le validateur quand quelque chose refuse de s’analyser

Le validateur YAML est le même moteur avec le panneau de sortie consacré au diagnostic : chaque erreur porte la ligne, la colonne, la cause en langage clair et la correction, et chaque valeur que YAML 1.1 et 1.2 lisent différemment est signalée.

Le convertisseur quand le fichier part vers un outil qui parle JSON

Corps de requêtes d’API, fixtures de tests, pipeline jq. Le convertisseur YAML vers JSON supprime les commentaires — JSON n’a pas de syntaxe pour eux — et vous dit combien il en a supprimé, développe les ancres et peut émettre un flux multi-documents en tableau ou en JSON Lines.

Questions fréquentes

Ce formateur YAML conserve-t-il les commentaires ?

Oui. Le formateur analyse votre document avec un analyseur qui conserve un arbre syntaxique concret : les commentaires sur leur propre ligne, ceux qui suivent une valeur et les blocs de commentaires entre sections ressortent là où ils étaient. Si vous activez le tri des clés, chaque commentaire reste attaché à la clé qu’il surplombe. La plupart des formateurs en ligne transforment le YAML en données brutes puis les réimpriment, ce qui fait disparaître tous les commentaires ; le convertisseur JSON de ce site fait de même, inévitablement, et vous indique combien ont été supprimés.

Le formatage modifie-t-il mes données ?

La structure et le texte ne sont pas touchés : les guillemets restent exactement tels que vous les avez écrits, les ancres, alias et clés de fusion restent en place, les scalaires de bloc gardent leur contenu et l’ordre des clés est conservé sauf si vous demandez un tri. Deux choses sont normalisées. Les nombres sans guillemets sont imprimés sous forme canonique en YAML 1.2, donc 022 devient 22, +1 devient 1 et 1e3 devient 1e+3 ; passez la version en 1.1 et les octaux à zéro initial comme 0644 sont conservés. Les scalaires repliés (>) sont remis en forme en conservant les sauts de paragraphe. Si une valeur doit garder son écriture exacte, mettez-la entre guillemets : les avertissements sous la sortie listent chaque valeur sans guillemets que YAML 1.1 et 1.2 lisent différemment.

Quelle indentation le formateur utilise-t-il ?

Deux espaces par défaut, ou quatre si vous le choisissez. Chaque niveau du document reçoit la même largeur quelle que soit l’indentation d’origine, et une séquence imbriquée sous une clé est indentée sous cette clé. YAML interdit les tabulations pour l’indentation, il n’y a donc pas d’option tabulation, et un document indenté avec des tabulations est signalé comme une erreur avec son numéro de ligne au lieu d’être reformaté.

Peut-il trier les clés ?

Oui. L’option Trier les clés classe alphabétiquement les clés de chaque mapping, à tous les niveaux d’imbrication, ce qui facilite les diffs et la revue de code pour les fichiers modifiés par plusieurs personnes ou outils. Les séquences gardent leur ordre, parce que dans une liste l’ordre a un sens. Les commentaires suivent la clé à laquelle ils appartiennent. Le tri est désactivé par défaut : l’ordre des clés n’a aucun sens en YAML, mais il en a souvent pour les personnes qui lisent le fichier.

Gère-t-il le YAML multi-documents ?

Oui. Un fichier contenant plusieurs documents séparés par --- est reformaté document par document et les séparateurs sont conservés ; un manifeste Kubernetes avec un Deployment, un Service et un Ingress reste un seul fichier. Un --- initial et une directive %YAML sont conservés aussi, et la ligne d’état indique combien de documents ont été reformatés.

Pourquoi le formateur rejette-t-il du YAML que le convertisseur accepte ?

Le formateur utilise un analyseur plus strict que le convertisseur, parce qu’il doit comprendre la forme exacte du document pour le reconstruire avec les commentaires en place. Un document que le convertisseur accepte mais qui échoue ici est signalé avec la ligne, une explication en langage clair et une correction suggérée, comme dans le validateur YAML. Le guide des erreurs YAML courantes passe en revue les six fautes derrière presque tous les échecs d’analyse.

Est-ce la même chose que yamllint ou Prettier ?

Non, et ils se complètent bien. yamllint signale les problèmes de style et de syntaxe mais ne réécrit pas le fichier ; ce formateur réécrit l’indentation et les espaces mais n’impose pas de règles comme la longueur de ligne. La sortie YAML de Prettier est proche de ce que vous obtenez ici, et si votre projet l’exécute déjà, cette page est inutile : elle existe pour le fichier que vous avez dans le presse-papiers à l’instant, sans rien installer ni rien envoyer.

Mon YAML est-il envoyé sur un serveur lors du formatage ?

Non. Le formateur est du JavaScript qui s’exécute dans l’onglet de votre navigateur. La bibliothèque yaml se charge avec la page et il n’existe aucun point de terminaison auquel envoyer un document ; vous pouvez charger la page, vous déconnecter et continuer à formater. Cela compte pour les fichiers qu’on veut généralement remettre au propre : manifestes Kubernetes, fichiers Docker Compose et pipelines CI contiennent des noms d’hôte, des registres et parfois un secret.

Comment formater du YAML en ligne de commande ?

yq -i . config.yaml reformate un fichier sur place en conservant les commentaires ; sans -i, le résultat est affiché. Avec Prettier installé, npx prettier --write "**/*.{yml,yaml}" formate tous les fichiers YAML d’un projet. En Python, ruamel.yaml en mode round-trip reformate en conservant les commentaires, ce que PyYAML ne sait pas faire. Pour un fichier isolé, collez-le dans le formateur ci-dessus.