DocumentsImagesMédiasOutils PDF

Convertir TOML en YAML en Ligne

Convertis ta configuration TOML en YAML, gratuitement, dans ton navigateur.


title: My Project
version: 1.0.0
server:
  host: localhost
  port: 8080
database:
  host: db.example.com
  name: myapp
Processed in your browser

De Rust et Hugo vers Docker et Jekyll

Migration Hugo vers Jekyll

Convertis le front matter TOML de tes fichiers Hugo en YAML pour Jekyll, Gatsby ou tout autre generateur moderne.

Projets Rust vers CI/CD

Extrait les donnees de Cargo.toml ou pyproject.toml pour les utiliser dans des workflows GitHub Actions ou GitLab CI.

100% prive

Ta configuration ne quitte jamais ton navigateur. Aucun serveur, aucune inscription.

Instantane

Conversion en temps reel. Les erreurs de syntaxe TOML sont detectees immediatement.

Trois étapes, sans complications

1

Colle ton TOML

Colle le contenu TOML dans l'editeur. Compatible avec Cargo.toml, pyproject.toml, Pipfile, hugo.toml et tout TOML v1.0 valide.

2

Conversion en YAML

Le convertisseur analyse ton TOML et genere un YAML 1.2 propre et indente. Tout se passe dans ton navigateur, rien n'est envoye.

3

Copie ou telecharge le YAML

Recupere le YAML pret pour docker-compose.yml, GitHub Actions, Ansible, Kubernetes ou le front matter Jekyll/Hugo.

Des questions ?

Le cas le plus frequent est la migration entre ecosystemes de generateurs de sites statiques : Hugo utilise TOML comme format de front matter prefere (bien qu'il supporte aussi YAML), tandis que Jekyll, Gatsby, Eleventy et la plupart des generateurs modernes utilisent YAML. Si tu migres un site de Hugo vers un autre generateur, ou si tu as une bibliotheque de contenu avec du front matter TOML a normaliser en YAML, cet outil convertit chaque bloc TOML en son equivalent YAML. Un autre scenario courant est l'ecosysteme Rust : les projets Rust utilisent Cargo.toml pour la gestion des dependances, mais lors de leur conteneurisation avec Docker ou de la definition du CI/CD dans GitHub Actions, tu dois exprimer la meme structure de donnees en YAML.

TOML (Tom's Obvious, Minimal Language) a ete cree par Tom Preston-Werner (cofondateur de GitHub) en 2013 comme alternative plus simple et sans ambiguite a YAML pour les fichiers de configuration. TOML 1.0 a ete publie en janvier 2021. Ses caracteristiques principales : il utilise des sections delimitees par [crochets] au lieu de l'indentation, a des types de donnees explicites (dates RFC 3339, tableaux types, tables inline), et est sans ambiguite - le meme TOML produit toujours le meme arbre de donnees, ce qui n'est pas toujours vrai de YAML en raison de ses multiples facons de representer la meme valeur. YAML est plus expressif et mature (YAML 1.0 en 2001, YAML 1.2 en 2009), mais aussi plus sujet aux erreurs d'indentation. TOML est prefere dans l'ecosysteme Rust (Cargo.toml) et Python moderne (pyproject.toml, PEP 518/621).

Cargo.toml et docker-compose.yml ont des structures conceptuellement differentes : Cargo.toml definit les metadonnees du paquet Rust, les dependances et les features du crate ; docker-compose.yml definit les services, reseaux et volumes des conteneurs. Il n'y a pas de conversion directe un-a-un avec une signification semantique. Cependant, convertir Cargo.toml en YAML structurel est utile pour extraire des dependances, versions ou features et les utiliser comme variables dans un docker-compose.yml ou un workflow GitHub Actions - par exemple, extraire la version du paquet depuis [package].version pour l'utiliser comme tag d'image Docker.

Oui, avec une transformation manuelle ensuite. pyproject.toml (introduit par PEP 518 en 2016, maintenant le standard de facto pour les projets Python modernes) definit les metadonnees du projet, les dependances, les outils de build (poetry, hatch, flit) et la configuration des linters. Le convertir en YAML te donne une representation structurelle depuis laquelle tu peux extraire des dependances ([tool.poetry.dependencies]) pour les generer dans un workflow GitHub Actions (pip install) ou creer un environnement Conda. L'outil genere du YAML valide que tu peux modifier pour l'adapter au schema specifique de GitHub Actions, GitLab CI ou CircleCI.

Dans Hugo, le front matter TOML est delimite par +++ au debut et a la fin du fichier Markdown. Dans Jekyll et la plupart des generateurs bases sur YAML, le front matter est delimite par --- (trois tirets). La migration implique : extraire le bloc TOML entre les +++, le convertir en YAML avec cet outil, et remplacer les delimiteurs +++ par --- dans le fichier Markdown. Les champs standard (title, date, tags, draft) se traduisent directement. Les champs specifiques a Hugo (aliases, outputs, cascade) peuvent ne pas avoir d'equivalent Jekyll et necesiteront une adaptation manuelle.

Oui. Les tableaux TOML se convertissent en listes YAML avec la syntaxe du tiret (-). Les tableaux inline [[1, 2, 3]] se convertissent en sequences de flux YAML ([1, 2, 3]) ou en sequences en bloc selon la longueur. Les tables TOML ([section]) se convertissent en maps YAML imbriquees. Les tableaux de tables TOML ([[products]]) se convertissent en listes d'objets YAML, ce qui est la representation YAML la plus naturelle pour des collections d'objets partageant la meme structure. Les types de donnees TOML (dates RFC 3339, booleens, entiers, flottants) sont preserves dans leurs equivalents YAML.

Convertir TOML en YAML : migrations Rust, Hugo et pyproject.toml vers les environnements DevOps

TOML (Tom's Obvious, Minimal Language) a ete cree par Tom Preston-Werner, cofondateur de GitHub, en 2013, avec l'objectif explicite d'etre 'manifestement non-ambigu' - une critique directe de la complexite de YAML, qui propose plusieurs facons de representer la meme valeur et dont la specification 1.1 contenait des ambiguites causant des comportements differents selon les parsers. TOML 1.0 a ete officiellement publie en janvier 2021 apres huit ans de developpement iteratif. L'ecosysteme qui a le plus adopte TOML est celui de Rust : Cargo, le gestionnaire de paquets officiel de Rust, utilise Cargo.toml pour definir les metadonnees du crate, les dependances, les features et la configuration du workspace. En dehors de Rust, Python moderne a adopte TOML via pyproject.toml (defini par PEP 518 en 2018 et consolide par PEP 621 en 2021), qui centralise la configuration de build, les metadonnees du paquet et les parametres des outils comme pytest, mypy, black et ruff. Hugo, le generateur de sites statiques le plus rapide (ecrit en Go), a adopte TOML comme format de configuration principal.

YAML, dont la specification 1.2 a ete publiee en octobre 2009, domine l'ecosysteme DevOps : GitHub Actions, GitLab CI, CircleCI, Azure Pipelines et Jenkins (via YAML pipelines) utilisent YAML exclusivement pour definir les pipelines CI/CD. Docker Compose utilise YAML depuis sa version initiale, Kubernetes utilise YAML pour tous ses manifests de ressources, et Ansible utilise YAML pour ses playbooks et roles. Les charts Helm (le gestionnaire de paquets Kubernetes) melent YAML avec des templates Go. La prevalence de YAML dans DevOps signifie que les projets Rust utilisant Cargo.toml comme configuration de projet doivent exprimer leur configuration CI/CD en YAML, et les projets Python avec pyproject.toml doivent ecrire leurs workflows GitHub Actions en YAML. Cela cree une coexistence des deux formats dans le meme depot qui necessite parfois une conversion entre eux.

La migration entre generateurs de sites statiques est le scenario le plus concret ou TOML vers YAML est necessaire. Hugo, lance en 2013 par Steve Francia et maintenu activement par Bjorn Erik Pedersen, a adopte TOML comme format de front matter prefere dans ses premieres versions. Le front matter TOML dans Hugo est delimite par +++ et peut contenir le titre, la date, les categories, les tags et n'importe quelle donnee personnalisee de chaque page. Jekyll, le generateur de sites statiques le plus ancien et qui a popularise le concept de front matter (cree par Tom Preston-Werner en 2008 et actuellement le moteur de GitHub Pages), utilise YAML delimite par ---. Migrer un site de Hugo vers Jekyll implique de convertir des milliers de fichiers Markdown avec du front matter TOML en YAML. Bien que cet outil traite un fichier a la fois dans le navigateur, il sert de validation de la conversion avant d'appliquer un script par lots. Pour les migrations massives, des scripts Python avec toml et PyYAML, ou Node.js avec @iarna/toml et js-yaml, automatisent le processus.