Formateur TOML

Formatez et validez du TOML (Tom's Obvious, Minimal Language). Aligne proprement les paires key = value, les tables et les tableaux, et signale les erreurs de syntaxe avec le numéro de ligne.

Principaux types de données TOML

Type Exemple Description
Chaîne (basique) "hello" Entourée de guillemets doubles. Prend en charge les séquences d'échappement comme \n et \t.
Chaîne (littérale) 'C:\path' Entourée d'apostrophes. Aucun échappement n'est appliqué, ce qui est pratique pour les chemins contenant des antislashs.
Entier 42 Décimal par défaut ; prend aussi en charge 0x (hexadécimal), 0o (octal), 0b (binaire) et les séparateurs par underscore comme 1_000.
Flottant 3.14 La notation exponentielle (1e10) ainsi que les valeurs spéciales inf/nan sont également valides.
Booléen true true ou false uniquement. Les formes avec majuscule initiale (True) sont invalides.
Tableau [1, 2, 3] Valeurs séparées par des virgules entre crochets. Une virgule finale est autorisée.
Table [server] Chaque paire key = value qui suit un en-tête de section appartient à cette table.
Tableau de tables [[fruits-basket]] Répéter le même nom de table exprime un tableau (par exemple plusieurs définitions de dépendances).
Date/Heure 1979-05-27T07:32:00Z Format RFC 3339 — la seule valeur composée qui peut s'écrire sans guillemets.

Astuces

  • Seuls les tableaux et tables en ligne écrits sur une seule ligne sont pris en charge. Si votre tableau s'étend sur plusieurs lignes, regroupez-le sur une seule avant de le coller.
  • Le formateur normalise toujours exactement un espace de chaque côté de "=" et uniformise les séparateurs de tableaux/tables en ligne en ", ", ce qui gomme les différences de style entre auteurs.
  • Les commentaires (tout ce qui suit #) sont conservés ; la seule modification appliquée est l'ajout d'un espace juste après "#" lorsqu'il manque, pour une édition minimale.
  • Les lignes vides consécutives sont regroupées en une seule, ce qui rend les frontières entre tables plus faciles à repérer.
  • Tout le traitement s'effectue entièrement dans votre navigateur : rien de ce que vous collez ici n'est jamais envoyé à un serveur.

Questions fréquentes

TOML convient bien aux fichiers plutôt plats, riches en paires clé-valeur, édités par plusieurs personnes (comme les manifestes de dépendances), car les erreurs d'indentation cassent rarement quelque chose. YAML est généralement préférable lorsqu'il faut des structures profondément imbriquées ou plusieurs documents dans un seul fichier.

Il formate correctement chaque en-tête [[section]], mais ne fusionne pas les sections répétées portant le même nom en un seul objet de type tableau (comme le ferait un convertisseur TOML vers JSON complet). Pour des structures complexes de tableaux de tables, vérifiez visuellement le résultat formaté ligne par ligne.

L'outil reconnaît la syntaxe RFC 3339 et restitue la valeur telle quelle, mais ne vérifie pas sa validité calendaire (par exemple un « 30 février » ne sera pas détecté). Si une validation stricte des dates est importante, vérifiez-la séparément.

"""...""" et '''...''' ne sont actuellement pas pris en charge, et la ligne concernée sera signalée comme une erreur. Convertissez les textes longs en une chaîne sur une seule ligne avec échappement avant de formater.

Non. Tout le formatage s'exécute entièrement dans votre navigateur via JavaScript ; rien n'est envoyé ni stocké sur un serveur, ce qui rend l'outil sûr même pour des fichiers de configuration contenant des identifiants.
ツールくん

Anecdote — Pourquoi TOML est devenu la langue commune des fichiers de configuration

TOML a été créé en 2013 par Tom Preston-Werner, cofondateur de GitHub, et son nom complet, « Tom's Obvious, Minimal Language », reflète directement l'objectif de conception : un format aussi facile à analyser pour une machine que le JSON, mais qui se lit et s'écrit naturellement pour un humain, sans ambiguïté.

Le tournant décisif est survenu lorsque Cargo, le gestionnaire de paquets de Rust, a adopté Cargo.toml comme format de manifeste. Plus tard, la PEP 518 a introduit pyproject.toml comme standard d'empaquetage pour Python, unifiant ce qui était auparavant un mélange de setup.py, setup.cfg et requirements.txt.

La plus grande différence avec YAML est que TOML n'attribue aucune signification à l'indentation. Dans YAML, une petite erreur d'indentation peut modifier silencieusement la structure des données ou provoquer une erreur de syntaxe ; TOML, lui, exprime la hiérarchie uniquement via des en-têtes [section] et des paires key = value, ce qui rend les erreurs de copier-coller bien moins probables.

En contrepartie, TOML sacrifie une partie de l'expressivité de YAML : il n'a pas d'ancres/alias pour réutiliser des valeurs et se révèle plus verbeux pour les structures profondément imbriquées, si bien que de nombreuses équipes choisissent entre TOML, YAML et JSON selon la forme des données.

→ Voir toutes les anecdotes