YAML vers TOML

Traduisez une configuration YAML en TOML avec indentation et tri des clés optionnels.

Traduisez une configuration YAML en TOML avec indentation et tri des clés optionnels. Traduisez une configuration YAML en TOML avec indentation et tri des clés optionnels.

Sortie

Contexte

Quand le YAML et le TOML se chevauchent, et quand ce n'est pas le cas

Le YAML et le TOML visent tous deux à être des formats de configuration lisibles par des humains. Ils se chevauchent fortement sur les données qu'ils peuvent représenter (mappings, séquences, scalaires), mais ils diffèrent dans la syntaxe et sur quelques cas particuliers. Le YAML prend en charge les balises, les ancres et les scalaires multi-lignes ; le TOML distingue les tables en ligne des tableaux de tables, et traite les dates comme un type de première classe.

Un convertisseur YAML-vers-TOML est surtout utile pour migrer un fichier de configuration du format préféré d'un outil vers celui d'un autre : par exemple, déplacer un manifeste Kubernetes dans un extrait pyproject.toml, ou réexprimer un inventaire Ansible dans une table Cargo [dependencies].

Ce qui survit à la conversion

Les mappings (key: value en YAML) deviennent des tables TOML ou des paires clé/valeur selon le contexte. Les séquences deviennent des tableaux en ligne ou des en-têtes [[array.of.tables]]. Les scalaires sont préservés tant qu'ils se mappe proprement : chaînes, entiers, flottants, booléens, et dates ISO.

Ce qui ne survit pas

Les ancres et alias YAML sont aplatis pendant l'analyse ; le TOML converti contient la valeur concrète à chaque site d'alias, ce que la plupart des consommateurs veulent. Les balises YAML !!binary ne sont pas préservées car le TOML n'a pas d'équivalent. Les commentaires sont supprimés volontairement -- aucun des deux formats ne garantit la préservation de l'aller-retour.

Conseils de workflow

Avant de valider le TOML converti, lancez le linter TOML de votre projet (taplo, toml-check, etc.). Le convertisseur ne traduit que la syntaxe, pas le style ; le linter détecte les problèmes de citation, d'indentation et d'ordre des clés que le convertisseur ne peut pas voir.

Construit autour de deux bibliothèques MIT/BSD-3 incluses dans public/assets : js-yaml pour l'analyse et smol-toml pour l'émission. Votre entrée est traitée localement.

Foire aux questions

Le convertisseur gère-t-il les ancres YAML ?
Oui. Les ancres (`&name value`) et les alias (`*name`) sont développés pendant l'analyse, si bien que le TOML contient la valeur résolue à chaque site d'alias. Les noms d'ancres d'origine ne sont pas préservés.
Les commentaires du YAML survivront-ils ?
Non. Les commentaires YAML sont supprimés par tous les analyseurs grand public. Ajoutez-les à la main dans le TOML si besoin.
Le convertisseur peut-il gérer des fichiers YAML multi-documents ?
Non. Le visualiseur traite chaque import comme un document unique. Utilisez un outil dédié pour les fichiers multi-documents.
Le TOML prend-il en charge les chaînes multi-lignes ?
Oui. Le convertisseur émet les chaînes de base triple-guillemets du TOML pour tout scalaire YAML contenant des retours à la ligne, si bien que la lisibilité est préservée.
Et les données YAML `!!binary` ?
Le TOML n'a pas d'équivalent pour les blobs binaires base64. Le convertisseur émet un avertissement et saute ces valeurs pour éviter une corruption silencieuse.
Mon YAML est-il téléversé ?
Non. L'analyse s'effectue localement via js-yaml, et la sortie TOML est générée localement via smol-toml. Rien n'est envoyé à un serveur.