Convertir YAML en TOML — Numio
Convertit un document YAML en TOML. Les mappings imbriqués deviennent des sections [table.sub], les listes de mappings des [[array of tables]], et les clés à valeur null (~) sont supprimées.
Réécrire une configuration YAML en TOML lorsqu’un projet passe à pyproject.toml ou aux paramètres TOML de Cargo, Hugo ou Netlify.
YAML
TOML
Quand l’utiliser
- Réécrire une configuration YAML en TOML lorsqu’un projet passe à pyproject.toml ou aux paramètres TOML de Cargo, Hugo ou Netlify.
- Voir à quoi ressemblerait une structure YAML imbriquée sous forme de tables TOML avant de choisir un format de configuration.
Mode d’emploi
- Collez un seul document YAML avec un mapping au premier niveau dans l’éditeur de gauche, ou utilisez le bouton de chargement de fichier pour ouvrir un fichier UTF-8.
- Corrigez toute erreur YAML signalée (indentation, documents multiples ou liste au premier niveau).
- Vérifiez les dates, les null et les listes dans le TOML, puis copiez-le.
YAML
# docker-compose style
version: "3.9"
services:
web:
image: nginx:1.27
ports:
- "8080:80"
environment:
DEBUG: false
WORKERS: 4
db:
image: postgres:16TOML
version = "3.9" [services.web] image = "nginx:1.27" ports = [ "8080:80" ] [services.web.environment] DEBUG = false WORKERS = 4 [services.db] image = "postgres:16"
Détails et limites
Le YAML est lu en YAML 1.2 : yes reste la chaîne "yes", 0o17 devient 15, et les dates sans guillemets comme 2024-01-05 deviennent des chaînes TOML, pas des dates TOML.
Les commentaires et les anchors ne sont pas conservés en tant que tels : les aliases (*name) et les clés de fusion <<: *anchor sont développés en les valeurs auxquelles ils font référence.
Un seul document est accepté ; une entrée avec des séparateurs --- échoue avec une erreur de documents multiples. Une liste au premier niveau, ou une liste mêlant des mappings et des valeurs simples, est rejetée avec une explication.
S’exécute dans votre navigateur (yaml + @iarna/toml). Les sous-tables comme [services.web.environment] sont indentées de deux espaces ; TOML ignore cette indentation.
FAQ
Puis-je convertir un docker-compose.yml en TOML ?
La structure est convertie, comme dans l’exemple, mais Docker Compose ne lit que le YAML. Servez-vous-en pour inspecter ou réutiliser les données, pas comme fichier Compose.
Que deviennent les valeurs null ?
Les clés dont la valeur est ~ ou null sont omises, car TOML n’a pas de type null.
Les anchors et les clés de fusion YAML sont-ils pris en charge ?
Oui. Les aliases (*name) sont développés, et <<: *base copie les clés de base dans le mapping, les clés écrites à côté étant prioritaires. Le TOML affiche les valeurs fusionnées.