Saltar al contenido principal
Tooletto

Markdown a HTML

Convierte Markdown a HTML con soporte de sintaxis estilo GitHub — tablas, listas de tareas, código con cercas y tachado. Una vista previa en vivo se renderiza en un marco aislado para que nada de lo que pegues pueda ejecutarse.

  • Los archivos nunca salen de tu dispositivo
  • Gratis, sin registro
  • Sin marcas de agua
  • Funciona sin conexión una vez cargado
Loading tool…

Cómo markdown a html

  1. 1

    Escribe o pega Markdown

    El HTML y la vista previa se actualizan mientras escribes.

  2. 2

    Comprueba la vista previa

    Renderizada en un marco aislado, así que el contenido pegado no puede ejecutar scripts.

  3. 3

    Copia el HTML

    Copia el marcado o descárgalo como un archivo .html.

CommonMark frente a GitHub Flavored Markdown

Markdown empezó como un formato poco especificado sin una gramática única y autorizada, lo que significaba que distintas implementaciones discrepaban en casos extremos — cómo deberían comportarse las listas anidadas, si los guiones bajos dentro de una palabra cuentan como énfasis — a menudo de formas que producían una salida renderizada genuinamente distinta del mismo texto fuente idéntico. CommonMark surgió específicamente para arreglar esto definiendo una especificación única, precisa y sin ambigüedad que cualquier analizador conforme debe seguir exactamente. GitHub Flavored Markdown (GFM) se construye sobre esa base de CommonMark y añade varias extensiones que el CommonMark plano no define en absoluto: tablas construidas con caracteres de barra vertical y una fila separadora de guiones, casillas de lista de tareas escritas como `- [ ]` y `- [x]`, texto tachado envuelto en dobles virgulillas, e hiperenlace automático de URL desnudas sin necesidad de sintaxis de enlace explícita. GFM es el dialecto que implementa esta herramienta porque es en lo que se han estandarizado GitHub, Reddit, y la abrumadora mayoría de generadores de sitios estáticos y herramientas de documentación, convirtiéndolo en el objetivo más ampliamente útil para cualquier cosa escrita para leerse en otro lugar.

Contra qué protege la vista previa aislada, y contra qué no

La sintaxis de Markdown permite deliberadamente incrustar HTML crudo directamente dentro de él — esto es intencional y es lo que deja a los autores de Markdown insertar un elemento incrustado, una alineación específica, o una pieza de estilo para la que la propia sintaxis de Markdown no tiene abreviatura. El riesgo es que una etiqueta `<script>` o un manejador de eventos en línea como `onerror=` pegado en Markdown no confiable normalmente se ejecutaría en el contexto que lo renderiza, lo cual es un vector real de scripting entre sitios si el Markdown vino de alguien distinto de la persona que ve la vista previa. Renderizar la vista previa en vivo dentro de un iframe aislado con scripts desactivados significa que cualquier etiqueta de script o manejador de eventos así en la vista previa simplemente no se ejecuta — el navegador se niega a ejecutar código dentro de un marco correctamente aislado, conteniendo el riesgo a esa vista previa aislada.

Lo que el aislamiento no hace es sanitizar la *salida HTML generada* que esta herramienta produce para que copies — esa salida a nivel de texto sigue conteniendo cualquier HTML crudo presente en el Markdown original, fielmente preservado, exactamente como pretende la especificación de Markdown. Si ese HTML generado se va a insertar en una página en vivo que muestra contenido de un autor no confiable, necesita su propio paso de sanitización separado en el servidor antes de publicarse, que es un paso distinto de cualquier cosa que maneje este aislamiento de vista previa.

Por qué Markdown permite HTML crudo en absoluto

Markdown fue diseñado deliberadamente como una abreviatura para las construcciones HTML a las que recurren más a menudo los escritores — encabezados, enlaces, énfasis, listas — en lugar de como un reemplazo completo de toda la capacidad de HTML. Cualquier cosa para la que la propia sintaxis de Markdown no tenga equivalente, desde un estilo en línea específico hasta un video incrustado, está pensada para escribirse como HTML literal directamente dentro del código fuente de Markdown, y el analizador lo traslada sin cambios en lugar de rechazarlo como inválido. Esta es una decisión de diseño deliberada que se remonta a la especificación original de Markdown, no una laguna o descuido en ninguna implementación particular.

Preguntas frecuentes

¿Qué variante de Markdown se admite?

GitHub Flavored Markdown: tablas, bloques de código con cercas, listas de tareas, tachado y autoenlaces, encima del núcleo de CommonMark. Ese es el dialecto que usan GitHub, Reddit y la mayoría de generadores de sitios estáticos.

¿Es seguro pegar Markdown de una fuente no confiable?

La vista previa se renderiza dentro de un iframe aislado con scripts desactivados, así que las etiquetas `<script>` incrustadas y los manejadores de eventos no pueden ejecutarse. Ten en cuenta que el *HTML generado* sigue conteniendo cualquier HTML crudo que estuviera en tu Markdown — sanitízalo en el servidor antes de publicar contenido que no escribiste tú.

¿Admite HTML crudo dentro de Markdown?

Sí — Markdown permite HTML en línea y se traslada tal cual. Eso es lo que hace que la nota de sanitización de arriba importe si la fuente no es confiable.

¿Por qué no se renderiza mi tabla?

Las tablas GFM necesitan una fila separadora de guiones bajo el encabezado, y una línea en blanco inicial si la tabla sigue a un párrafo. Una sola barra vertical faltante en la fila separadora convierte silenciosamente todo de vuelta en texto plano.

Tareas habituales de markdown a html