Conversion en masse de Markdown en HTML

illustrations illustrations illustrations illustrations illustrations illustrations illustrations

Publié le 20 juillet 2023 par Andrew Owen (2 minutes)

post-thumb

La conversion de Markdown en HTML est facile. Il suffit de le publier avec un générateur de site statique (SSG). Mais peut-être utilisez-vous une solution de documentation Markdown basée sur le cloud et ne disposez-vous pas d’un SSG local. Dans ce cas, vous n’avez probablement pas envie de vous donner la peine d’en installer un juste pour effectuer la conversion. Il existe des convertisseurs gratuits en ligne, mais je n’en ai pas trouvé qui effectuent la conversion en masse. Il existe également de nombreux exemples de code pour des langages tels que JavaScript et Python. Mais que faire si vous n’avez besoin que de votre Markdown au format HTML?

La solution la plus simple est un plug-in pour Visual Studio Code appelé Markdown All in One par Yu Zhang. Installez VScode. Cliquez sur l’icône des extensions et recherchez markdown. Installez l’extension. Vous êtes maintenant prêt à travailler.

  1. Ouvrez le dossier contenant les fichiers Markdown que vous voulez convertir.
  2. Ouvrez au moins un fichier.
  3. Appuyez sur Ctrl+Shift+P (Command+Shift+P sur Macs) pour ouvrir la Command Palette.
  4. Dans la barre de recherche, tapez Markdown.
  5. Cliquez sur Markdown All in One: Print documents to HTML.
  6. Sélectionnez un dossier, puis appuyez sur Entrée. Le dossier doit se trouver dans le projet.

Mais si vous préférez utiliser la ligne de commande, vous pouvez utiliser Pandoc. Voici un script Bash destructif (il supprime les fichiers .md) que j’ai écrit et que vous pouvez déposer dans un dossier contenant du Markdown. Il supporte un niveau de dossiers imbriqués.

for subdir in *; do
test -d "$subdir" || continue
echo $subdir
cd "$subdir"

for subdir2 in *; do
test -d "$subdir2" || continue
echo $subdir2
cd "$subdir2"

for g in *.md; do
export FILE2=${g%%.md}
pandoc -f gfm -t html $FILE2.md -o $FILE2.html
rm $FILE2.md
done

cd ..
done

for f in *.md; do
export FILE=${f%%.md}
pandoc -f gfm -t html $FILE.md -o $FILE.html
rm $FILE.md
done

cd ..
done

Merci à Bill Dyer de m’avoir signalé le plug-in VScode de Yu Zhang.