Markdown: conversion HTML en batch

Le format Markdown (.md) est très pratique pour rédiger des notes, articles ou documentations. Mais souvent, tu as besoin de les convertir en HTML pour les afficher dans une page web. En Python, c’est possible très facilement avec la librairie markdown-it-py.

    6tq 5ttr 6ttr
  • Découverte

Objectif

Écrire un petit script qui :

  1. Parcourt un dossier contenant des fichiers .md.
  2. Lit chaque fichier.
  3. Convertit son contenu en HTML.
  4. Sauvegarde le résultat dans un fichier .html du même nom.

Prérequis

Installe la bibliothèque :

pip install markdown-it-py

Crée un dossier avec quelques fichiers Markdown, par exemple :

articles/
  article1.md
  article2.md

Exemple de script simple

import os
from markdown_it import MarkdownIt

# Créer le parser Markdown (version simple)
md = MarkdownIt("gfm-like")

# Dossier où se trouvent les fichiers .md
INPUT_DIR = "articles"
OUTPUT_DIR = "html"

# Crée le dossier de sortie s'il n'existe pas
os.makedirs(OUTPUT_DIR, exist_ok=True)

# Parcourt tous les fichiers du dossier
for filename in os.listdir(INPUT_DIR):
    if filename.endswith(".md"):
        path_md = os.path.join(INPUT_DIR, filename)

        # Lire le contenu Markdown
        with open(path_md, "r", encoding="utf-8") as f:
            contenu = f.read()

        # Convertir en HTML
        html = md.render(contenu)

        # Nom du fichier de sortie (remplacer .md par .html)
        output_name = filename.replace(".md", ".html")
        path_html = os.path.join(OUTPUT_DIR, output_name)

        # Sauvegarder
        with open(path_html, "w", encoding="utf-8") as f:
            f.write(html)

        print(f"✅ Converti : {filename}{output_name}")

Exemple de rendu

Si ton fichier article1.md contient :

# Bonjour Markdown

Voici une liste :
- Pomme
- Poire
- Cerise

Le fichier article1.html généré ressemblera à :

<h1>Bonjour Markdown</h1>
<p>Voici une liste :</p>
<ul>
<li>Pomme</li>
<li>Poire</li>
<li>Cerise</li>
</ul>

Bonnes pratiques

  • Séparer les fichiers Markdown (source) et HTML (résultats).
  • Ajouter un petit template HTML autour du rendu (header, footer, CSS).
  • Tester avec des textes simples, puis ajouter des fonctionnalités (tables, checklists avec le mode gfm-like).

À retenir

  • Avec markdown-it-py, tu peux transformer rapidement des .md en .html.
  • Le script présenté est volontairement simple et clair : un dossier d’entrée, un dossier de sortie, et quelques lignes de Python.
  • C’est une bonne base pour créer ton propre mini-générateur de site statique.

Pour aller plus loin