Traduisez des documents TOML en YAML avec tri optionnel des clés et contrôle de l'indentation.
Traduisez des documents TOML en YAML avec tri optionnel des clés et contrôle de l'indentation. Traduisez des documents TOML en YAML avec tri optionnel des clés et contrôle de l'indentation.
Sortie
Contexte
Pourquoi passer de TOML à YAML
Les deux formats ciblent des fichiers de configuration édités par l'humain, mais l'écosystème autour d'eux diffère. Le TOML est la norme pour l'empaquetage Python (pyproject.toml), Rust (Cargo.toml), les workflows GitHub et de nombreux outils CLI. Le YAML est la norme pour Kubernetes, Ansible, Docker Compose, GitHub Actions (l'ancienne syntaxe), et de nombreux systèmes CI.
Parfois vous devez exprimer la même configuration dans les deux formats : réutiliser un extrait de pyproject.toml dans un playbook Ansible, ou transcrire une ConfigMap Kubernetes en bloc de dépendances Cargo.toml. Un convertisseur TOML-vers-YAML garde la traduction mécanique.
Ce qui survit à la conversion
Les mappings, séquences, scalaires (chaînes, entiers, flottants, booléens, dates ISO), tables en ligne et clés pointées se traduisent proprement. Les chaînes multilignes sont émises en scalaires de bloc YAML, préservant la mise en page visuelle choisie par l'auteur TOML d'origine.
Ce qui ne survit pas
Les balises YAML (!!str, !!int, etc.) ne sont émises que quand le type sous-jacent diffère de l'inférence par défaut de YAML. En pratique, le choix de l'analyseur correspond à ce que la plupart des lecteurs attendent. Les ancres YAML ne sont pas produites par défaut car chaque valeur TOML est entièrement autonome ; si vous voulez des sous-arbres partagés, introduisez-les à la main.
Astuces de flux de travail
Après la conversion, faites passer le YAML via un linter (yamllint, kubeconform) avant de committer. Le convertisseur traduit la syntaxe, pas le style : il ne peut pas savoir si vous vouliez le fichier en snake_case ou kebab-case, ni si vous vouliez une indentation de 2 ou 4 espaces. Vos conventions de projet décident cela.
Foire aux questions
Le convertisseur prend-il en charge les tableaux de tables TOML ?
Oui. Les en-têtes `[[name]]` deviennent des éléments de séquence YAML sous la clé `name`, en préservant l'ordre des tables.
La sortie YAML conservera-t-elle mes commentaires TOML ?
Non. Les commentaires TOML sont retirés par l'analyseur. Ajoutez les commentaires à la main dans la sortie YAML si besoin.
Comment les dates TOML sont-elles représentées en YAML ?
Les dates et date-heures deviennent des chaînes YAML avec la même représentation ISO. La plupart des consommateurs YAML les analysent avec la bibliothèque de dates de leur langage.
Et les tables en ligne de TOML ?
Elles deviennent des mappings YAML imbriqués sur une seule ligne. Certains guides de style exigent le style bloc pour la lisibilité ; convertissez manuellement si votre linter s'en plaint.
Pourquoi la sortie utilise-t-elle des guillemets doubles autour des chaînes ?
Les chaînes YAML entre guillemets simples interdisent les séquences d'échappement et les scalaires simples YAML ont des mots-clés réservés ; les guillemets doubles sont le choix par défaut le plus sûr pour un aller-retour de texte arbitraire.
Mon TOML est-il téléversé ?
Non. L'analyse se fait localement via smol-toml et l'émission YAML via js-yaml. Rien n'est envoyé à un serveur.