03 / GUIDES
De Markdown à HTML : un workflow de publication propre
Pourquoi Markdown est un format source durable, ce qu'un convertisseur contraint prend réellement en charge, comment l'assainissement et les règles de liens gardent la sortie sûre, ce que l'aller-retour HTML perd, et où la conversion se place dans une chaîne docs ou blog.
Pourquoi Markdown est la source, pas l'export
Un pipeline de publication a besoin d'un format master qui survive aux outils, aux hébergeurs et aux redesigns. Le Markdown en texte brut est ce master : lisible dans tout éditeur, diffable dans le contrôle de version, et indépendant du template HTML qui le rend cette année.
La discipline qui le fait marcher est un flux à sens unique : le Markdown est édité à la main, le HTML est produit par le convertisseur, et personne ne retouche la sortie manuellement. Dès que le HTML exporté reçoit des modifications à la main, il y a deux masters, et ils vont dériver.
- PortablePortabilité : un fichier Markdown s'ouvre dans tous les éditeurs et se convertit en HTML, PDF, diapositives ou système de documentation sans projet de migration.
- DiffableRelisabilité : les changements de prose apparaissent comme des diffs de lignes propres, tandis qu'un master HTML enterre une modification d'un mot dans des balises et des attributs.
- Structure, pas styleSéparation des responsabilités : la source porte la structure — titres, listes, citations — pendant que le thème décide de la typographie, donc un redesign ne touche jamais l'archive.
Ce que le sous-ensemble pris en charge convertit — et ce qui s'aplatit
Les convertisseurs délibérés prennent en charge un sous-ensemble à dessein, car chaque construction supportée est une façon de plus de faire passer du balisage que personne n'a relu. Sachez où se situe votre contenu par rapport à cette ligne avant de vous fier à la conversion.
En mode Markdown vers HTML, une image ne conserve que son texte alternatif, ni l'image ni son URL ; le HTML brut est échappé comme texte. En mode HTML vers Markdown, un tableau collé devient un bloc de texte délimité et perd sa grille. Vérifiez la sortie convertie avant publication.
- Conversions propresConversion propre : titres jusqu'à six niveaux, paragraphes, gras, italique, barré, code en ligne, blocs de code délimités, listes ordonnées et non ordonnées, citations, règles horizontales et liens en ligne.
- Pertes connuesHors du sous-ensemble, le résultat dépend du sens de conversion : une image Markdown ne garde que son texte alternatif, le HTML brut dans Markdown est échappé comme texte, et un tableau HTML devient un bloc de texte délimité lors du retour vers Markdown. Vérifiez aussi les notes et listes de tâches plutôt que de supposer qu'elles survivent.
- Tester un vrai articleLe test est simple : convertissez un article représentatif et lisez la sortie. Tout ce qui manque au résultat n'a jamais fait partie du contrat.
L'assainissement fait partie de la publication, pas un extra
Le HTML converti peut être inséré dans une page ; l'outil l'assainit donc par défaut. Les éléments actifs sont retirés, les balises inconnues sont déballées, et les attributs supprimés sauf les URL de liens autorisées et les valeurs start valides des listes ordonnées.
Le volet d'aperçu rend la sortie assainie et ne charge jamais de ressources distantes : même coller du balisage hostile ne peut pas faire téléphoner l'outil lui-même.
- Contenu actif suppriméLes éléments porteurs de comportement actif — script, style, iframe, object, embed, svg, form, video, audio, img — sont supprimés avec leur contenu, pas simplement neutralisés.
- Attributs retirésStyles en ligne, gestionnaires d'événements et classes de la source sont retirés. Les liens sûrs gardent href et les listes ordonnées valides gardent start.
- Rapporté, pas silencieuxL'espace de travail rapporte ce qu'il a retiré — comptes de nœuds abandonnés et d'attributs retirés — donc l'assainissement est un événement visible, pas une mutation silencieuse.
Les liens ne gardent que les schémas sûrs
Un document rendu est surtout fait de liens, et c'est sur les liens que l'assainissement devient précis. Le convertisseur accepte les URL http, https et mailto plus les #fragments intra-page ; tout le reste — javascript:, data:, astuces de protocole relatif — perd son href et se rend en texte brut.
Confrontez la liste blanche à votre contenu avant de standardiser sur un convertisseur : un ensemble de documentation qui lie légitimement des miroirs ftp ou des schémas d'application personnalisés a besoin que ces liens soient préservés à la main, car aucun assainisseur sain ne les laissera passer automatiquement.
- Liste blanche de schémasLes liens survivants sont estampillés rel="noreferrer noopener", donc un lien suivi ne peut ni voir ni scripter la page depuis laquelle il a été ouvert.
- noopener noreferrerLa même règle s'applique dans les deux sens : les liens écrits en Markdown sont vérifiés à la conversion, et les href trouvés dans du HTML collé sont revérifiés après assainissement.
- Les libellés surviventQuand un lien perd son schéma, le texte du libellé reste — la navigation cassée est visible immédiatement au lieu de livrer une charge javascript: silencieuse.
L'aller-retour perd de vraies choses
Convertir HTML en Markdown est une récupération, pas un aller-retour fidèle. Titres, paragraphes, emphase, listes, citations et code pris en charge reviennent en Markdown. D'autres structures peuvent être simplifiées ou retirées par l'assainissement et la conversion.
Considérez HTML-vers-Markdown comme un moyen d'extraire la prose d'une page que vous ne contrôlez plus — un vieil export de CMS, un document qui n'existe qu'en HTML rendu. Puis réparez ce que l'aller-retour ne peut pas : rajoutez les images, reconstruisez les tableaux, et gardez désormais le Markdown comme master.
- Les tableaux s'effondrentLes tableaux perdent leur grille et deviennent un bloc de texte délimité ; les données tabulaires demandent donc une réécriture ou un export CSV.
- Les médias sont supprimésImages, vidéos et embeds interactifs ont disparu par conception — l'assainisseur les a retirés comme contenu actif avant que le Markdown ne soit construit.
- Le texte survit au styleLe formatage hors du sous-ensemble — spans, divs, classes, cibles d'ancre — ne laisse aucune trace ; le texte survit, pas la présentation.
Où la conversion se place dans un workflow de docs ou de blog
L'étape de conversion s'exécute au moment de la publication, une fois par article : rédigez et relisez en Markdown, convertissez en HTML assaini, vérifiez le rendu, et livrez. Tout se passe dans l'onglet — le brouillon n'est jamais téléversé, ce qui compte quand le contenu est un lancement non annoncé.
- Étape de publicationL'espace de travail accepte jusqu'à 256 Kio de source et produit jusqu'à 512 Kio de sortie — confortablement à l'échelle d'un chapitre de livre — et rapporte une erreur explicite au-delà de ces limites au lieu de tronquer silencieusement.
- Limites explicitesCopiez la sortie dans le champ de votre CMS ou téléchargez-la en fichier ; les deux voies prennent le même document assaini que l'aperçu vous a montré.
- Reconvertir, ne pas patcherGardez le Markdown dans le contrôle de version à côté du code qu'il documente, et reconvertissez après chaque modification au lieu de patcher le vieux HTML.
Le texte structuré mérite une routine.
Brouillons Markdown et charges utiles JSON partagent une discipline : analyser d'abord, inspecter la structure, et garder toute la relecture sur votre appareil.