O que esta ferramenta faz
Entra Markdown, sai HTML.
# Título
Algo em **negrito** e um [link](https://x.dev).
<h1>Título</h1>
<p>Algo em <strong>negrito</strong> e um <a href="https://x.dev">link</a>.</p>
O GitHub Flavored Markdown está ligado: tabelas, listas de tarefas, riscado e links automáticos são lidos. Um bloco cercado guarda a linguagem em class="language-js", que é o que os destacadores esperam.
Enfim, notas de rodapé
Ada escreveu o primeiro algoritmo[^1].
[^1]: Sobre as notas de Menabrea, 1843.
<p>Ada escreveu o primeiro algoritmo<sup class="footnote-ref"><a href="#fn-1" id="fnref-1">1</a></sup>.</p>
<section class="footnotes">
<ol>
<li id="fn-1"><p>Sobre as notas de Menabrea, 1843. <a href="#fnref-1">↩</a></p></li>
</ol>
</section>
O marked, a biblioteca por trás desta ferramenta, não tem regra para notas. [^1] era então lido como link de referência e [^1]: Sobre as notas de Menabrea, 1843. como a definição dele: a marca virava um link para uma página com o nome da nota, e o texto da nota não aparecia em lugar nenhum. Era um defeito real, encontrado ao escrever esta página e corrigido. As notas são numeradas na ordem das marcas, e uma marca sem nota atrás continua sendo o texto que é.
O HTML é seu, e não está sanitizado
Um [link inofensivo](javascript:alert(1)) e <div onclick="roubar()">HTML cru</div>.
Os dois passam intactos, e aí o Markdown cumpre o que promete: o formato permite HTML cru, e um conversor que o tirasse estaria mentindo sobre o seu documento. O resultado, aqui, é exibido como texto e nunca inserido na própria página.
A consequência é sua: se o Markdown vem de outra pessoa — um comentário, um chamado, um formulário —, sanitize o HTML antes de publicar. Uma biblioteca como o DOMPurify faz isso numa chamada, e o lugar dela é onde o HTML é publicado, não aqui.
O que você não recebe
- Um documento. Sem
<html>, sem<head>, sem codificação declarada, sem folha de estilo: isto é um fragmento para colar dentro de algo. - Âncoras nos títulos. O GitHub põe um
idem cada título; é convenção de exibição, não Markdown, então os<h2>saem nus. - Um
<br>a cada quebra de linha. Uma quebra simples dentro do parágrafo continua sendo um espaço, como manda a especificação. Dois espaços no fim da linha, ou uma linha em branco, fazem o que você espera.
Privado por padrão
Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.