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.

Mettre en forme du TOML et en vérifier la syntaxe

TOML est un format conçu pour les fichiers de configuration, et son agrément tient à la simplicité d'aligner de simples paires `key = value`. Cet outil met en ordre le TOML que vous collez et juge dans le même temps si la syntaxe tient ; lorsque quelque chose est cassé, la ligne fautive est désignée.

**Ce sur quoi l'on bute d'abord en TOML, c'est que la structure vient de lignes d'en-tête écrites `[table]` et non de l'indentation.** Qui vient de YAML se saisit de l'indentation pour exprimer la hiérarchie, mais en TOML l'indentation ne signifie strictement rien : **les clés écrites entre un en-tête de table et le suivant appartiennent à cette table.** C'est donc la place de la ligne qui décide de la structure. L'autre trait distinctif est que les dates et les heures sont des types de plein droit, si bien qu'une valeur telle que `2026-09-20T10:00:00Z` peut s'écrire sans guillemets, telle quelle.

Comment s'en servir

  1. Collez le TOML Le contenu d'un `Cargo.toml` ou d'un `pyproject.toml` s'y place tel quel.
  2. Regardez le verdict **Une entrée saine est déclarée TOML valide ; lorsque la syntaxe échoue, la ligne en cause est indiquée.**
  3. Lisez la sortie mise en forme Clés et valeurs s'alignent, et les frontières entre les tables deviennent aisées à voir.
  4. Recopiez-le Le contenu mis en ordre peut être reversé dans le fichier sans autre changement.

Astuces pour en tirer le meilleur parti

  • 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.

Dans quels cas s'en servir

Pour chercher une erreur dans un fichier de configuration

**Un en-tête de table mal placé change en silence la table à laquelle une clé appartient, et c'est une sorte d'erreur que l'œil attrape rarement.**

Pour lire la configuration d'un projet en Rust ou en Python

Mettre en forme un `Cargo.toml` ou un `pyproject.toml` rend bien plus aisé le suivi des séparations entre dépendances.

Pour vérifier un portage depuis un autre format

Des réglages réécrits depuis JSON ou YAML se testent sur-le-champ pour savoir si la syntaxe tient.

Pour uniformiser le style d'une équipe

Mettre en forme avant de valider garde les blancs parasites hors du diff et n'y laisse que l'essentiel.

Vocabulaire du TOML

Table
Un en-tête écrit entre crochets, comme `[package]`, qui **rassemble en un groupe les clés allant de là jusqu'à l'en-tête suivant.**
Tableau de tables
La notation écrite avec des crochets doublés, `[[dependencies]]`. Répéter le même en-tête ajoute un élément au tableau.
Table en ligne
Une table écrite sur une seule ligne, comme `{ a = 1, b = 2 }`. **Elle convient aux réglages courts mais ne peut être coupée sur plusieurs lignes.**
Chaîne de base
Une chaîne entre guillemets doubles, à l'intérieur de laquelle les échappements tels que `\n` prennent effet.
Chaîne littérale
Une chaîne entre apostrophes. **Aucun échappement n'y produit d'effet, ce qui en fait le bon choix pour les chemins Windows et les expressions régulières.**
Date et heure
Un type que TOML offre nativement. Une date ou une heure telle que `1979-05-27T07:32:00Z` peut s'écrire sans guillemets.

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.
Tool-kun

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.