Qué hace esta herramienta
Entra Markdown, sale HTML.
# Título
Algo en **negrita** y un [enlace](https://x.dev).
<h1>Título</h1>
<p>Algo en <strong>negrita</strong> y un <a href="https://x.dev">enlace</a>.</p>
GitHub Flavored Markdown está activo: tablas, listas de tareas, tachado y enlaces automáticos se leen. Un bloque cercado guarda su lenguaje en class="language-js", que es lo que esperan los resaltadores.
Por fin, notas al pie
Ada escribió el primer algoritmo[^1].
[^1]: Sobre las notas de Menabrea, 1843.
<p>Ada escribió el primer 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 las notas de Menabrea, 1843. <a href="#fnref-1">↩</a></p></li>
</ol>
</section>
marked, la biblioteca detrás de esta herramienta, no tiene regla para las notas. [^1] se leía entonces como enlace de referencia y [^1]: Sobre las notas de Menabrea, 1843. como su definición: la marca acababa siendo un enlace a una página con el nombre de la nota, y el texto de la nota no aparecía en ningún sitio. Era un defecto real, encontrado al escribir esta página y corregido. Las notas se numeran en el orden de las marcas, y una marca sin nota detrás se queda en el texto que es.
El HTML es tuyo, y no está saneado
Un [enlace inofensivo](javascript:alert(1)) y <div onclick="robar()">HTML crudo</div>.
Los dos pasan intactos, y ahí Markdown cumple lo que promete: el formato permite HTML crudo, y un conversor que lo quitara mentiría sobre tu documento. El resultado, aquí, se muestra como texto y nunca se inserta en la propia página.
La consecuencia es tuya: si el Markdown viene de otra persona —un comentario, una incidencia, un formulario—, sanea el HTML antes de publicarlo. Una biblioteca como DOMPurify lo hace en una llamada, y su sitio está donde se publica el HTML, no aquí.
Lo que no obtienes
- Un documento. Sin
<html>, sin<head>, sin codificación declarada, sin hoja de estilos: esto es un fragmento para pegar dentro de algo. - Anclas en los títulos. GitHub pone un
iden cada título; es una convención de presentación, no Markdown, así que los<h2>salen desnudos. - Un
<br>por cada salto de línea. Un salto simple dentro de un párrafo se queda en un espacio, como manda la especificación. Dos espacios al final de la línea, o una línea en blanco, hacen lo que esperas.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.