Un linter pour votre Markdown, avec des explications lisibles
Markdown a l'air simple jusqu'au moment où votre README, votre site de documentation ou votre billet de blog commence à paraître incohérent : marqueurs de listes mélangés (style de puces), espaces de fin de ligne, niveaux de titres qui sautent une marche (niveaux de titres), blocs de code fences sans étiquette de langue. Un renderer affichera quand même la page, mais le résultat est négligé et le bruit dans les diffs est énorme.
Cet outil fait tourner le même moteur que la CLI `markdownlint` (markdownlint) sur votre texte. Vous obtenez une liste numérotée d'erreurs, chacune avec son code de règle (`MD009`, `MD040`, ...), une description en une ligne, et là où c'est auto-corrigeable, un aperçu du correctif. Cliquez sur une ligne, la zone de texte défile jusqu'à elle.
Quatre presets couvrent les choix courants : Recommended (le défaut, raisonnable pour tout projet), GitHub (compatible GFM), Strict (lignes à 80 colonnes plus pas de titres dupliqués), Custom rules (tout activé). Activez Fix mode pour voir le texte nettoyé et le copier en un clic.
Mode d'emploi
- Collez votre Markdown dans la grande zone de texte à gauche. Un petit exemple avec des erreurs volontaires est chargé par défaut pour que l'outil ait tout de suite quelque chose à montrer.
- Choisissez un preset en haut : Recommended pour presque tous les projets, GitHub quand votre fichier va sur GitHub ou GitLab, Strict pour la doc technique qui veut toutes les règles plus les lignes à 80 colonnes, Custom rules pour activer toutes les vérifications disponibles.
- Cliquez sur « Run lint ». Le panneau de droite se remplit d'une liste numérotée d'erreurs. Chacune affiche le code de règle (par exemple `MD040`), une courte description, l'extrait concerné et un badge « auto-fix » si markdownlint peut la corriger pour vous.
- Cliquez sur n'importe quelle ligne d'erreur pour sauter à cette ligne dans la zone de texte. La ligne est sélectionnée pour pouvoir l'éditer directement. Utile pour traiter des dizaines d'erreurs sans faire défiler manuellement.
- Activez « Fix mode » pour voir la sortie nettoyée à la place de votre entrée brute. Toutes les erreurs auto-corrigeables sont appliquées. Les structurelles (style des titres, étiquettes de langue, erreurs de contenu) sont à corriger à la main.
- Cliquez sur « Copier » pour récupérer soit votre entrée brute, soit la sortie nettoyée (selon Fix mode). C'est la chaîne à recoller dans votre README ou doc.
- Lisez la FAQ ci-dessous si vous voulez savoir ce que signifie une règle précise ou quel preset correspond à la convention de votre équipe. Chaque code de règle pointe vers une explication courte en français clair.
Quand c'est utile
Six situations concrètes où un linter Markdown fait gagner un vrai temps :
- Vérification finale d'un README avant push. Vous avez écrit 300 lignes, utilisé `-` pour les puces dans la première moitié et `*` dans la seconde, trois de vos blocs de code n'ont pas d'étiquette de langue : le syntax highlighter de GitHub les affiche en monochrome. Lint, fix, push.
- Mise en route d'un site de doc (Astro, Hugo, Docusaurus, MkDocs). Le générateur enveloppe chaque page dans une mise en page. Un mauvais Markdown se traduit par des tableaux mal alignés, des ancres cassées et une hiérarchie de titres incohérente dans la sidebar. Linter avant d'ajouter les pages capture tout ça.
- Revue de code d'une PR d'un collègue. Il a collé du Markdown depuis Notion, qui adore émettre des espaces de fin de ligne et des guillemets typographiques. Lint, collez la liste dans le commentaire de la PR, « voici 12 choses à corriger ».
- Nettoyage d'un tutoriel avant publication sur Medium ou dev.to. Les deux plateformes ont leurs propres bizarreries Markdown. Faire tourner le preset strict en local d'abord élimine le jeu de devinettes du « qu'est-ce qui s'affiche où ».
- Migration depuis une autre plateforme. Vous avez exporté des billets de WordPress, Ghost ou Substack en Markdown. Ils sont pleins de wrappers `<div>` HTML inline, d'URL brutes qui devraient être auto-linkées, et de titres qui démarrent en H2. Le linter les repère tous.
- Mise en place d'un pre-commit hook en CI. Les mêmes règles utilisées ici partent dans un fichier de config de votre repo : vous obtenez une coche verte sur vos runs CI et un commentaire bienveillant sur chaque PR qui les enfreint.