100 % local — vos données ne quittent jamais votre navigateur

TOML en YAML — une config lue pareil partout

Convertissez une config TOML en YAML. Les scalaires ambigus sortent cités : un vieux lecteur PyYAML et un moderne donnent les mêmes valeurs à votre appli.

Instantané Privé Zéro cookie
Indentation

Entrée TOML

Sortie YAML

Ce que fait cet outil

Une configuration TOML devient du YAML. Les tables deviennent des tableaux associatifs imbriqués, et les [[tableaux de tables]] des séquences.

title = "Demo"

[server]
host = "localhost"
port = 8080
title: Demo
server:
  host: localhost
  port: 8080

L’indentation est une option ; deux espaces par défaut, ce qu’attendent la plupart des linters YAML.

Cité là où il le faut, nu partout ailleurs

country = "NO"
answer = "yes"
start = "12:30"
country: "NO"
answer: "yes"
start: "12:30"

Laissés nus, ces trois-là seraient lus false, true et le nombre 750 par n’importe quel lecteur YAML 1.1 — PyYAML, donc Ansible, donc quantité de chaînes de déploiement. C’est le problème norvégien : un code pays qui devient un booléen, sans rien dans le fichier pour vous prévenir. Le sérialiseur cite exactement les scalaires ambigus et laisse le reste tranquille : le fichier reste lisible, et les deux versions de YAML s’accordent sur ce qu’il contient.

Les grands entiers gardent leurs chiffres

snowflake = 1096285471735640155
snowflake: 1096285471735640155

TOML impose des entiers signés de 64 bits, et l’analyseur refusait le document entier dès que l’un d’eux dépassait ce qu’un nombre JavaScript contient exactement. Un seul identifiant rendait une configuration légale inconvertible. Les chiffres traversent maintenant sans changer — un vrai défaut, trouvé en écrivant cette page puis corrigé.

Ce que coûte le pivot JSON

Cette conversion passe par JSON, comme toutes les conversions composées de ce site : les deux moitiés sont déjà testées, et leurs messages d’erreur déjà précis.

  • inf, -inf et nan sont refusés, la clé nommée. JSON n’a aucun des trois et les écrirait null : un débit infini arriverait en débit absent. YAML saurait porter .inf ; le pivot, non, et il le dit plutôt que de laisser tomber la valeur.
  • Les dates deviennent des chaînes citées. Une date TOML n’a pas d’équivalent JSON. En direct elle resterait une date, mais une heure locale comme 07:32:00 gagnerait toute une date de calendrier inventée autour d’elle.
  • Les commentaires ne survivent pas. Ils appartiennent au fichier, pas aux données.

Un fichier qui commence par la marque d’ordre des octets, invisible, qu’ajoutent les éditeurs Windows est maintenant lu normalement, au lieu d’être refusé par un message sur les caractères permis dans une clé.

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.

Questions fréquentes

Pourquoi cette valeur est-elle citée alors que les autres non ?
Parce qu’elle voudrait dire autre chose pour la moitié des lecteurs YAML. Le paquet `yaml` écrit du YAML 1.2, où `NO`, `yes` et `12:30` sont des chaînes. PyYAML — le lecteur YAML le plus répandu au monde — applique YAML 1.1, où ce sont faux, vrai et le sexagésimal 750. Citer exactement ces scalaires-là, et rien d’autre, donne aux deux lecteurs les mêmes valeurs à partir du même fichier.
Que sont devenues mes dates ?
Elles arrivent en chaînes citées, par exemple `"1979-05-27"`. La conversion passe par JSON, qui n’a pas de type date : une date TOML devient donc du texte, et un texte qui ressemble à une date doit être cité, faute de quoi un lecteur YAML 1.1 en referait un horodatage de son cru.
Pourquoi `inf` est-il refusé alors que YAML sait écrire `.inf` ?
Parce que JSON est au milieu. Toutes les conversions composées de ce site passent par JSON, qui n’a pas d’infini : la valeur est refusée en nommant sa clé plutôt qu’annulée en silence. Aller de TOML à YAML directement sauverait l’infini, mais transformerait une heure locale comme `07:32:00` en horodatage complet, avec une date inventée autour. Le pivot perd moins, et ce qu’il ne peut pas porter, il le nomme.

Convertisseurs associés