Formateur YAML en Ligne

Formatez, validez et convertissez vos fichiers YAML avec precision. Ideal pour Kubernetes, Docker Compose et CI/CD.

YAML Source
Ligne 1, Col 1
Actions
Conversion
Options
Resultat
Ligne 1, Col 1

Guide complet du format YAML

Comprendre YAML

Apres avoir configure des dizaines de pipelines CI/CD et clusters Kubernetes, YAML est devenu mon format de configuration prefere. "YAML Ain't Markup Language" privilegie la lisibilite humaine : pas de guillemets superfluels, pas d'accolades, l'indentation definit la structure. Cela le rend ideal pour les fichiers que les humains editent frequemment.

YAML est particulierement adapte aux configurations DevOps ou la clarte est essentielle. Un fichier Docker Compose ou un manifest Kubernetes bien formate se lit comme de la prose technique, rendant les erreurs plus faciles a detecter et la maintenance plus agreable.

Ou YAML est utilise

DevOps et Cloud

Docker Compose, Kubernetes manifests, Ansible playbooks, Terraform (HCL similaire), AWS CloudFormation. L'ecosysteme DevOps est domine par YAML.

CI/CD Pipelines

GitHub Actions, GitLab CI, CircleCI, Travis CI, Azure DevOps. Les workflows de deploiement sont presque toujours en YAML.

Configuration Apps

Spring Boot (application.yml), Ruby on Rails, Home Assistant, mkdocs, Hugo. Beaucoup de frameworks modernes adoptent YAML.

Data Serialization

Alternative lisible a JSON pour les APIs et l'echange de donnees quand la lisibilite prime sur la compacite.

Syntaxe YAML essentielle

Voici les elements de syntaxe que vous utiliserez quotidiennement :

  • Paires cle-valeur : Ecrivez "cle: valeur" avec un espace apres les deux-points
  • Listes : Tiret suivi d'espace "- item" pour chaque element
  • Objets imbriques : Indentation de 2 espaces par niveau de profondeur
  • Commentaires : Signe diese "# commentaire" jusqu'a la fin de ligne
  • Multi-documents : Separes par trois tirets "---" sur une ligne
  • Texte multilignes : Pipe "|" preserve les sauts de ligne, chevron ">" les fusionne
  • Ancres et alias : "&anchor" pour definir, "*anchor" pour reutiliser une valeur

YAML vs JSON : comparaison detaillee

  • Sur-ensemble : YAML est un sur-ensemble de JSON, tout JSON valide est du YAML valide
  • Commentaires : YAML supporte les commentaires, JSON non
  • Lisibilite : YAML est plus lisible mais potentiellement plus verbeux pour les donnees complexes
  • Parsing : JSON a un parsing strict et universel, YAML a plus de variantes
  • Usage recommande : JSON pour les APIs, YAML pour la configuration editable par humains

Erreurs courantes a eviter

Les pieges les plus frequents en YAML :

  • Tabs vs espaces : YAML interdit les tabulations pour l'indentation, utilisez uniquement des espaces
  • Indentation incoherente : Tous les elements du meme niveau doivent etre alignes exactement
  • Espace apres deux-points : "cle: valeur" est correct, "cle:valeur" ne l'est pas
  • Caracteres speciaux : Les valeurs contenant ":" ou "#" doivent etre entre guillemets
  • Booleens implicites : "yes", "no", "true", "false" sont interpretes comme booleens

Questions frequentes

Pourquoi mon YAML ne fonctionne pas ?

Les erreurs les plus frequentes : 1) Tabs au lieu d'espaces - YAML exige des espaces pour l'indentation. 2) Indentation incoherente - tous les elements du meme niveau doivent etre alignes. 3) Espace manquant apres les deux-points - "cle: valeur" est correct, "cle:valeur" ne l'est pas. 4) Caracteres speciaux non quotes - les valeurs contenant ":", "#", ou commencant par "@" doivent etre entre guillemets. Utilisez la fonction Valider de notre outil pour identifier l'erreur exacte.

Tabs ou espaces pour l'indentation YAML ?

Espaces uniquement. La specification YAML interdit explicitement les tabulations pour l'indentation. C'est un des pieges les plus courants car beaucoup d'editeurs inserent des tabs par defaut. Configurez votre editeur pour convertir les tabs en espaces. La convention standard est 2 espaces par niveau d'indentation, parfois 4 pour une meilleure lisibilite. L'essentiel est la coherence dans tout le fichier.

Comment ecrire du texte sur plusieurs lignes ?

Deux syntaxes principales : 1) Le pipe "|" preserve les sauts de ligne exactement comme ecrits. 2) Le chevron ">" fusionne les lignes en un seul paragraphe, remplacant les sauts par des espaces. Dans les deux cas, le texte doit etre indente sous le marqueur. Variantes utiles : "|+" et ">+" conservent le saut de ligne final, "|-" et ">-" le suppriment. Tres utile pour les scripts inline dans les fichiers CI/CD.

Que sont les ancres et alias YAML ?

Les ancres (&nom) definissent une valeur reutilisable, les alias (*nom) la referencent. Tres utile pour eviter la duplication. Exemple : definissez "&default" sur une configuration commune, puis utilisez "*default" partout ou vous voulez l'appliquer. Vous pouvez meme fusionner avec "<<:" pour heriter et surcharger. Cependant, tous les parsers YAML ne supportent pas les fonctionnalites avancees, verifiez la compatibilite avec votre outil cible.

Comment gerer les valeurs speciales (null, booleens, nombres) ?

YAML interprete automatiquement certaines valeurs. "null", "~", ou rien = null. "true", "false", "yes", "no", "on", "off" = booleens. Les nombres sont auto-detectes (123, 3.14, 1e10). Piege courant : "no" comme valeur textuelle devient false. Solution : mettez entre guillemets pour forcer le type string. Exemple : version: "1.0" au lieu de version: 1.0 pour eviter qu'il soit interprete comme nombre.

Les commentaires sont-ils conserves lors de la conversion vers JSON ?

Non, malheureusement. JSON ne supporte pas les commentaires, donc lors de la conversion YAML vers JSON, tous les commentaires sont perdus. C'est une limitation fondamentale du format JSON. Si vous avez besoin de conserver des annotations, vous pouvez les inclure dans des proprietes speciales comme "_comment" mais ce n'est pas standard. Pour cette raison, gardez toujours votre fichier YAML source comme reference.

Mes fichiers YAML sont-ils securises avec cet outil ?

Absolument. Tout le traitement s'effectue localement dans votre navigateur grace a la bibliotheque js-yaml executee en JavaScript cote client. Aucune donnee n'est envoyee a nos serveurs ou a des services tiers. Vous pouvez verifier cela dans l'onglet Network des outils developpeur : aucune requete reseau n'est effectuee lors du formatage. Une fois la page chargee, l'outil fonctionne meme completement hors ligne.

Quelle version de la specification YAML est supportee ?

Notre outil utilise js-yaml qui supporte la specification YAML 1.2, la version actuelle et recommandee. Cette version a corrige certaines ambiguites des versions anterieures, notamment autour de l'interpretation des booleens. YAML 1.2 est egalement entierement compatible avec JSON, ce qui facilite les conversions. La plupart des outils modernes (Kubernetes, GitHub Actions, etc.) utilisent YAML 1.1 ou 1.2.