Ce que fait cet outil
Du Markdown entre, du HTML sort.
# Titre
Du **gras** et un [lien](https://x.dev).
<h1>Titre</h1>
<p>Du <strong>gras</strong> et un <a href="https://x.dev">lien</a>.</p>
Le GitHub Flavored Markdown est actif : tableaux, listes de tâches, barré et liens automatiques sont lus. Un bloc clôturé garde son langage en class="language-js", ce qu’attendent les colorateurs.
Les notes de bas de page, enfin
Ada a écrit le premier algorithme[^1].
[^1]: Sur les notes de Menabrea, 1843.
<p>Ada a écrit le premier algorithme<sup class="footnote-ref"><a href="#fn-1" id="fnref-1">1</a></sup>.</p>
<section class="footnotes">
<ol>
<li id="fn-1"><p>Sur les notes de Menabrea, 1843. <a href="#fnref-1">↩</a></p></li>
</ol>
</section>
marked, la bibliothèque derrière cet outil, n’a pas de règle pour les notes. [^1] était donc lu comme un lien de référence et [^1]: Sur les notes de Menabrea, 1843. comme sa définition : le repère devenait un lien vers une page nommée d’après la note, et le texte de la note n’apparaissait nulle part. C’était un vrai défaut, trouvé en écrivant cette page puis corrigé. Les notes sont numérotées dans l’ordre des repères, et un repère sans note derrière lui reste le texte qu’il est.
Le HTML est le vôtre, et il n’est pas assaini
Un [lien anodin](javascript:alert(1)) et <div onclick="voler()">du HTML brut</div>.
Les deux traversent intacts, et c’est le Markdown qui tient sa promesse : le format autorise le HTML brut, et un convertisseur qui le retirerait mentirait sur votre document. Le résultat, ici, est affiché comme du texte et n’est jamais inséré dans la page.
La conséquence vous revient : si le Markdown vient de quelqu’un d’autre — un commentaire, un ticket, un formulaire — assainissez le HTML avant de le publier. Une bibliothèque comme DOMPurify le fait en un appel, et sa place est là où le HTML est publié, pas ici.
Ce que vous n’obtenez pas
- Un document. Ni
<html>, ni<head>, ni encodage déclaré, ni feuille de style : c’est un fragment à coller dans quelque chose. - Des ancres sur les titres. GitHub pose un
idsur chaque titre ; c’est une convention d’affichage, pas du Markdown, et les<h2>sortent donc nus. - Un
<br>à chaque saut de ligne. Un saut simple dans un paragraphe reste une espace, comme le veut la spécification. Deux espaces en fin de ligne, ou une ligne vide, font ce que vous attendez.
Confidentiel par conception
Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.