Ce que fait cet outil
Les dictionnaires imbriqués deviennent des tables, les listes de dictionnaires des tableaux de tables :
db:
host: db.example.com
pool:
size: 10
servers:
- name: a
- name: b
[db]
host = "db.example.com"
[db.pool]
size = 10
[[servers]]
name = "a"
[[servers]]
name = "b"
Trois choses que TOML ne peut pas porter
Null. TOML n’a pas de valeur nulle. Retirer la clé changerait ce que dit le fichier ; écrire "" inventerait une valeur. La conversion s’arrête et vous dit laquelle.
Une liste racine. Un fichier TOML est une table : le premier niveau, ce sont des paires clé/valeur, toujours. Un document YAML dont la racine est une séquence n’a nulle part où les mettre. Nommez la liste et elle se convertit.
Plusieurs documents. --- sépare les documents YAML ; TOML n’a pas de séparateur, ni de façon de dire « et voici un autre fichier ». Un à la fois.
Les dates restent des chaînes
2026-01-01 arrive en chaîne, parce que c’est ainsi que YAML 1.2 la lit, et repart en chaîne entre guillemets.
TOML a bien un type date natif, et l’employer reviendrait à décider que l’auteur pensait à une date. Parfois c’est le cas. Parfois 2026-01-01 est une référence produit, un nom de dossier, une version. Se tromper transforme du texte en horodatage, et ce n’est pas un changement que l’on remarque avant que quelque chose, plus loin, se mette à trier.
Un point à savoir sur les grands entiers
Un entier au-delà d’une quinzaine de chiffres est arrondi au passage. La conversion transite par JSON, dont les nombres sont des flottants double précision : c’est là que les chiffres se perdent.
yaml-to-json les garde exacts — il lit les chiffres tels qu’écrits. La frontière qui arrondit est celle que partagent toutes les conversions json-to-…, et elle sera traitée là-bas plutôt que rafistolée ici. En attendant : si votre fichier porte un identifiant de vingt chiffres, mettez-le entre guillemets dans le YAML et il traversera en chaîne, intact.
Confidentiel par conception
Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.