Aller au contenu principal

Obtenir une mindmap plus attrayante avec Markmap et Quarto

Générez des mindmaps attrayantes à partir de Markdown avec Markmap et personnalisez-les dans VSCode. Affichez le résultat HTML final avec Quarto et Docker.

· 4 minutes de lecture
Voir la source
Christophe
Amoureux de Markdown, WSL et Docker ~ Curieux insatiable.
Cet article existe aussi en anglais — lire la version originale.

Traduction automatique

Cette traduction a été produite par une IA. Elle peut contenir des contresens ou des maladresses, en particulier sur les termes techniques. En cas de doute, consultez l'article de référence en anglais — c'est lui qui fait foi.

Cet article a plus d'un an, mais il a été relu le 30 juillet 2026 — son contenu est toujours exact.

Obtenir une mindmap plus attrayante avec Markmap et Quarto

⚡
TL;DR

Cet article propose un guide pas à pas pour créer des mindmaps interactives et attrayantes à partir de simples fichiers Markdown. Vous apprendrez à utiliser l'extension VS Code Markmap pour visualiser instantanément vos listes Markdown sous forme de mindmap, directement dans votre éditeur. L'article explique aussi comment personnaliser l'apparence de votre mindmap via les paramètres de VS Code. Enfin, il montre comment utiliser Quarto, via un simple script shell basé sur Docker, pour générer votre mindmap sous forme de page HTML autonome et soignée, sans rien installer localement.

En 2023, j'ai écrit cet article Créer une mind map avec Docker et Markdown sur la façon de rendre un document Markdown sous forme de mindmap.

Cette fois, j'aimerais aller un cran plus loin et rendre le tout plus attrayant.

Deux autres façons de transformer du texte en diagramme sur ce blog : générer du Mermaid depuis un script Python et afficher un fichier JSON sous forme de mindmap.

Voici où nous allons — la même liste Markdown toute simple, rendue en mindmap HTML autonome et soignée avec Quarto :

Le résultat final avec Quarto

Commençons par le commencement : lancez VSCode et créez un nouveau fichier. Comme nous allons faire un peu plus que ça, créons un nouveau dossier : mkdir -p /tmp/markmap && cd $_.

Créez-y un fichier Markdown, par exemple overview.qmd. L'extension .qmd sert juste à dire ceci est un fichier Markdown et nous comptons l'utiliser avec Quarto ; rien de spécial ici.

# 📚 Project Overview
## 🚀 Goals
- ✅ **Launch MVP**
- 🌱 Collect ==user feedback==
- 📈 Iterate every 2 weeks
## 🧰 Tech Stack
- `Next.js` + `Tailwind`
- 🧠 AI via OpenAI
- 🐘 PostgreSQL DB
## 🔁 Feedback Loop
- 📞 Customer interviews
- 📝 Surveys
- 📊 Usage metrics
## 📅 Timeline
- Q1 → Prototyping
- Q2 → MVP 🚢
- Q3 → Growth 📈

Ce document Quarto présente un aperçu de projet décrivant les objectifs (lancer un MVP et collecter les retours utilisateurs), la stack technique (Next.js, Tailwind, OpenAI, PostgreSQL), la boucle de feedback (interviews, sondages, métriques) et le calendrier de développement réparti sur trois trimestres.

Remarque

Le contenu du fichier overview.qmd ci-dessus a été généré par IA.

Nous obtenons donc ceci :

Le fichier overview.qmd dans vscode

Afficher la markmap en ligne​

Rendez-vous sur https://markmap.js.org/repl et collez le contenu Markdown pour obtenir immédiatement un premier rendu :

Rendu avec le bac à sable en ligne de Markmap

Ok, ça marche mais ce n'est pas vraiment impressionnant.

Installer l'extension VSCode​

Il existe une extension Markmap sur le marketplace ; rendez-vous sur https://marketplace.visualstudio.com/items?itemName=gera2ld.markmap-vscode pour l'installer.

Une fois installée dans VSCode, appuyez sur CTRL+SHIFT+P pour ouvrir la Command Palette, cherchez Markmap, sélectionnez Markmap: open as markmap et appuyez sur Enter.

Vous obtiendrez quasiment la même sortie que la version en ligne :

Rendu de la Markmap dans VSCode - basique

Configurer le rendu​

En créant un fichier .vscode/settings.json, vous pouvez définir du CSS et des options par défaut, c'est-à-dire configurer l'extension Markmap-vscode.

Créez le fichier .vscode/settings.json avec ce contenu :

{
"markmap.customCSS": ".markmap-link,\nline {\n\tstroke: #505050;\n\tstroke-width: 1.5px;\n}\n.markmap-node > circle {\n\tstroke: #202020;\n\tstroke-width: 1.5px;\n\tr: 6px;\n\tfill: #242424;\n}\n\n.markmap-foreign a {\n\ttext-decoration: none;\n\tcolor: #bbbbbb !important;\n}\n\n.markmap-highlight rect {\n\t/* fill: #303030 !important; */\n\tfill: transparent !important;\n\ttransform: scale(0.84, 0.7) !important;\n\ttransform-origin: center !important;\n\ttransform-box: fill-box;\n\ttransform-origin: center;\n}",
"markmap.defaultOptions": "{\n \"color\": \"function(d, i) { return d3.interpolateRainbow(i / 10); }\",\n \"nodeFont\": \"20px 'Segoe UI', 'Helvetica Neue', sans-serif\",\n \"spacingVertical\": 40,\n \"spacingHorizontal\": 140,\n \"initialExpandLevel\": -1,\n \"duration\": 1000,\n \"paddingX\": 10,\n \"paddingY\": 10\n}"
}

Ce fichier de configuration JSON définit l'apparence et le comportement d'une visualisation markmap (une carte mentale interactive). Il spécifie des styles CSS personnalisés pour les liens, nœuds et éléments en surbrillance, ainsi que des options par défaut comme la taille de police, l'espacement et les animations.

Sauvez le fichier, retournez dans overview.qmd et, si nécessaire, relancez Markmap: open as markmap.

L'aperçu sera bien meilleur :

Un meilleur rendu dans VSCode

Lisez la doc

La liste des options existantes est documentée sur le site officiel : https://markmap.js.org/docs/json-options

Générer une page HTML avec Quarto​

Dernière étape de cet article : rendons notre contenu Markdown sous forme d'une jolie page HTML, grâce à Quarto.

Créons un nouveau fichier render.sh avec le contenu suivant :

#!/usr/bin/env bash
set -euo pipefail
mkdir -p .build/.quarto_deno_cache_data/deno
chmod -R 777 .build/.quarto_deno_cache_data
# shellcheck disable=SC2046 # id -u/-g never contain whitespace, safe unquoted
docker run -it --rm \
-u $(id -u):$(id -g) \
-v ".:/public" \
-w /public \
-v "./.build/.quarto_deno_cache_data:/container_cache" \
-e DENO_DIR="/container_cache/deno" \
-e QUARTO_CACHE_DIR="/container_cache/quarto" \
-e HOME="/public" \
ghcr.io/quarto-dev/quarto \
quarto render overview.qmd --no-cache --output-dir .build --quiet
( cd .build && explorer.exe overview.html )

Ce script crée un répertoire de cache, puis lance un conteneur Docker qui exécute Quarto pour générer un fichier HTML à partir d'une source Markdown. Ensuite il ouvre le fichier HTML généré dans l'explorateur de fichiers Windows. Le script s'arrête immédiatement à la première erreur grâce aux options de sécurité définies au début.

Rendez ce fichier exécutable en lançant chmod +x render.sh.

Il est temps de l'appeler : dans votre console, lancez ./render.sh pour exécuter le script.

La toute première fois, ce sera plus long car Docker doit télécharger l'image Docker de Quarto (ghcr.io/quarto-dev/quarto).

Le script va appeler Quarto, faire quelques initialisations et convertir le fichier overview.qmd en une page HTML qui sera stockée dans un nouveau dossier .build.

Après avoir lancé le script, vous aurez donc cette structure dans votre projet :

Structure du projet après exécution du script

Le plus chouette : Quarto a rendu votre contenu Markdown sous forme d'une belle page — le même résultat déjà montré en haut de cet article, ce qui était l'objectif de ce billet.

Conclusion​

Il est très simple d'écrire une structure de type MindMap et de générer soit une image, soit une page web. On pourrait aller encore plus loin avec Quarto, car une page web peut être personnalisée avec du CSS.

Et, comme c'est une page web, vous pouvez facilement copier-coller le rendu dans un e-mail, un document Word ou n'importe quoi d'autre et obtenir un visuel plutôt sympa pour ce qui n'était au départ qu'une simple liste.


🦋 Rejoignez la conversation sur BlueskyUn compte Bluesky gratuit est nécessaire pour aimer, repartager ou commenter. Ce bloc interroge l'API publique de Bluesky directement depuis votre navigateur (sans cookie, sans connexion) — votre adresse IP parvient donc aux serveurs de Bluesky dès que cette section se charge.

Chargement des commentaires…

Cet article vous a-t-il été utile ?
Avez-vous suivi les étapes de cet article ?