Convierte Markdown en HTML listo para pegar en la web y descubre antes de pegarlo qué se va a romper
Un convertidor de Markdown a HTML transforma un texto escrito con símbolos como #, ** y - en las etiquetas HTML que lee una página web. La conversión sigue la especificación de GitHub Flavored Markdown (GFM) y el motor es marked 18, una biblioteca de código abierto muy extendida que va incluida en esta misma página. Mientras escribes, a la derecha se actualizan la vista web y el código HTML. Puedes copiar o guardar el resultado como HTML del cuerpo, como HTML con estilos o como documento .html completo, según el sitio donde vayas a pegarlo.
La herramienta no se limita a convertir. También reúne en una lista de revisión lo que podría fallar después de pegar: marcas de énfasis que se quedan como símbolos, líneas que se unieron por no haber una línea en blanco, direcciones relativas que no se abrirán en otro sitio y bloques de código que nunca se cerraron. Si pulsas una tarjeta de revisión, el editor salta a esa línea, y la franja de estructura del centro muestra de qué bloques se compone el documento y dónde están los puntos por revisar. Tu texto se convierte dentro del navegador y no se envía a ningún servidor.
Cuándo conviene convertir Markdown a HTML
- Publicar en el campo HTML de un blog o una web: si pegas símbolos de Markdown directamente en un campo que admite HTML, como el bloque «HTML personalizado» de WordPress,
##y**se ven como caracteres sueltos. Si antes lo conviertes a HTML, los títulos, las listas y las tablas llegan con su forma correcta. - Llevar a la web la respuesta de un chat de IA o una nota: las respuestas de las herramientas de chat con IA y las notas de las aplicaciones para desarrolladores suelen venir escritas con símbolos de Markdown. Si las pegas tal cual, los símbolos se quedan, así que es más limpio copiarlas como HTML o con formato.
- Preparar un boletín por correo electrónico: algunos servicios de correo restringen
<style>. Según caniemail.com, Gmail en la web no admite<style>dentro del cuerpo (body) y limita su tamaño a 16 KB. En ese caso lo más seguro es la forma «Con estilos», que pone el estilo en cada etiqueta. - Repartir un README o un manual como una sola página web: «Guardar como archivo .html» genera un documento con tipos de letra, tablas, estilo de código y colores para el modo oscuro. Quien lo reciba puede abrirlo en el navegador sin ningún otro programa.
- Pegar en un editor sin campo HTML: «Copiar con formato» deja en el portapapeles el HTML y el texto sin formato a la vez. En los sitios que aceptan pegado con formato, como la ventana de redacción de un correo o un editor de documentos, los títulos, las listas y las tablas entran tal como son.
Cómo se usa
- Añade tu Markdown: escribe o pega en el editor de la izquierda. Elige un archivo .md, .markdown o .txt con «Abrir archivo» o arrástralo al editor. Un archivo antiguo que no esté en UTF-8 se vuelve a leer como EUC-KR.
- Usa los botones de sintaxis: los botones de encima del editor rodean el texto seleccionado con negrita, cursiva o un enlace, o ponen delante de las líneas seleccionadas las marcas de título, lista o cita. Ctrl+B, Ctrl+I y Ctrl+K (⌘ en Mac) hacen lo mismo. Los símbolos se muestran en color, así que es fácil ver qué es un título y qué es énfasis.
- Comprueba la vista web: la «Vista web» de la derecha muestra el resultado como una página web real. Acompaña al editor cuando te desplazas y, si el cursor está en el editor, ese bloque se marca con una barra a la izquierda. Cambia a «Código HTML» para ver las etiquetas en color.
- Elige las reglas de conversión: decide cómo tratar los saltos de línea, el HTML mezclado con el Markdown, la forma del HTML, «Corregir énfasis» y «ID de títulos». El resultado se regenera en cuanto cambias una de ellas.
- Revisa y copia: mira las tarjetas de revisión de abajo y pulsa «Copiar HTML», «Copiar con formato» o «Guardar como archivo .html». Si activas «Guardar en este navegador», tu texto y tus reglas se quedan solo en este navegador y podrás continuar la próxima vez.
En qué etiqueta HTML se convierte cada símbolo de Markdown
La columna HTML de la tabla es lo que esta herramienta genera de verdad. Las tablas, las listas de tareas, el tachado y los enlaces automáticos son extensiones que GFM añade a CommonMark.
| Markdown | HTML | Conviene saber |
|---|---|---|
## Subtítulo | <h2>Subtítulo</h2> | El número de signos # (de 1 a 6) es el nivel del título. Después del # debe haber un espacio. |
**negrita** *cursiva* | <strong>negrita</strong> <em>cursiva</em> | Los guiones bajos (__, _) funcionan igual, pero dentro de una palabra no producen énfasis. |
~~tachado~~ | <del>tachado</del> | Es una extensión de GFM. Rodear el texto con una sola tilde también lo tacha. |
`npm install` | <code>npm install</code> | Dentro del código, < y & se convierten automáticamente y se ven tal como se escribieron. |
[Guía](https://example.com) | <a href="https://example.com">Guía</a> | Una dirección con un espacio no se convierte en enlace. Si la rodeas con < y >, el espacio pasa a ser %20. |
 | <img src="…/map.png" alt="Mapa"> | El texto entre corchetes es la descripción de la imagen (alt). |
- manzana- pera | <ul><li>manzana</li>…</ul> | También se pueden usar * y + como viñetas. |
3. Tercero4. Cuarto | <ol start="3"> | Solo cuenta el primer número; los demás se numeran por orden. Si escribes 1. 1. 1., sale igualmente 1, 2, 3. |
- [x] Reservar entradas | <input checked="" disabled="" type="checkbox"> Reservar entradas | Es una lista de tareas de GFM. La casilla del resultado es solo un indicador y no se puede marcar. |
> Una cita | <blockquote><p>Una cita</p></blockquote> | Si apilas >>, obtienes una cita dentro de otra cita. |
| Nombre | Cant. || --- | ---: | | <table> … <td align="right">3</td> | La posición de los : de la segunda fila fija la alineación (:--- izquierda, :---: centro, ---: derecha). |
www.example.com | <a href="http://www.example.com"> | Es un enlace automático de GFM. Al texto que empieza por www se le añade http://, así que en un sitio https es mejor escribir la dirección completa. |
```js … ``` | <pre><code class="language-js"> | El nombre del lenguaje tras la valla pasa a ser una clase language-. El resaltado de código del sitio donde pegues lee ese nombre para poner los colores. |
--- | <hr> | Si lo escribes en la línea justo debajo de un texto, no crea una línea separadora: convierte ese texto en un título de nivel 2. |
Por qué el énfasis se queda como símbolos junto a comillas y paréntesis, y qué hace «Corregir énfasis»
La especificación de Markdown decide si un asterisco puede abrir o cerrar énfasis según los caracteres que tiene a cada lado. Según la definición de CommonMark 0.31.2, una marca de apertura (un delimitador a la izquierda) seguida de un signo de puntuación debe ir precedida de un espacio en blanco o de otro signo de puntuación, y una marca de cierre (un delimitador a la derecha) precedida de un signo de puntuación debe ir seguida de un espacio en blanco o de otro signo de puntuación. Por eso, si pones el énfasis dentro de comillas, paréntesis o corchetes angulares japoneses y pegas una letra justo después, como en **"foo"**s, el ** de cierre no puede cerrar el énfasis y los asteriscos quedan como texto. En el ejemplo 380 de la especificación (a**"foo"**) el fallo está en la apertura: el primer ** va justo después de una letra y antes de unas comillas, así que no puede abrir el énfasis. Ocurre sobre todo en coreano y japonés, donde las partículas se unen directamente a la palabra anterior.
Con «Corregir énfasis» activado (el estado inicial), la herramienta interpreta como énfasis solo estos casos. Cambia un punto únicamente cuando el borde interior es un signo de puntuación y el exterior es un carácter japonés, coreano o chino (kana, hangul o kanji), que es donde se pegan las partículas. Si fuera hay una letra latina o un número, se mantiene la regla estándar, de modo que textos como a**"foo"** o 2*(3+4)*5 no cambian; tampoco se toca el énfasis que contiene código, un enlace o una etiqueta HTML. Las frases que ya funcionan con la regla estándar no se tocan. Cada punto corregido se indica en la tarjeta «Énfasis corregido».
| Markdown | Reglas estándar (GitHub, marked) | Resultado con la corrección activada |
|---|---|---|
**「重要」**は (japonés) | **「重要」**は (se ven los símbolos) | 「重要」は |
**(注)**を (japonés) | **(注)**を (se ven los símbolos) | (注)を |
a**"foo"** | a**"foo"** (se ven los símbolos) | a**"foo"** (letra latina fuera: se mantiene la regla estándar) |
**«importante»**y | **«importante»**y (se ven los símbolos) | **«importante»**y (letra latina fuera: se mantiene la regla estándar) |
**importante**, y | importante, y (funciona) | importante, y |
__negrita__x | __negrita__x (se ven los símbolos) | __negrita__x (los guiones bajos no se corrigen) |
La corrección se aplica solo al HTML que genera esta herramienta. Si publicas el mismo Markdown de origen en un sitio donde rigen las reglas estándar, como GitHub, esos puntos seguirán viéndose como símbolos. La forma más sencilla de que el original funcione en cualquier parte es poner el énfasis fuera del signo de puntuación ("**foo**" seguido de una letra); y si las propias comillas deben ir en negrita, escribe una etiqueta HTML, como <strong>"foo"</strong>s. Los guiones bajos están definidos para que no produzcan énfasis dentro de una palabra, lo que protege nombres como snake_case, pero en un texto corrido con partículas coreanas o japonesas pegadas, los asteriscos son la opción más segura.
Por qué las líneas que separaste salen unidas
En Markdown, lo que separa los párrafos es una línea en blanco. La especificación GFM llama salto de línea suave al que se escribe sin línea en blanco y dice que en HTML puede representarse como salto de línea o como espacio. Los navegadores lo muestran como un solo espacio, así que en el resultado dos líneas quedan unidas. Según la documentación de GitHub, GitHub conserva los saltos de línea de forma automática en las incidencias y los comentarios, pero en un archivo .md muestra el mismo texto en una sola línea.
| Cómo lo escribes | Línea en blanco = párrafo (estándar) | <br> en cada línea |
|---|---|---|
| Un salto de línea normal | Se une en una sola línea | Se separa con <br> |
| Dos espacios al final de la línea | Se separa con <br> | Se separa con <br> |
Una barra invertida (\) al final de la línea | Se separa con <br> | Se separa con <br> |
| Una línea en blanco | Dos párrafos | Dos párrafos |
Para poemas, direcciones y letras de canciones, que se leen línea a línea, elige «<br> en cada línea». Si prefieres dejar el resto del documento en modo estándar y separar solo unas pocas líneas, añade una barra invertida al final de esas líneas. Los dos espacios finales no se ven y algunos editores los eliminan al guardar. En el estado estándar, la tarjeta «Saltos de línea simples unidos» indica con su número de línea las que se han unido.
El HTML dentro del Markdown y la seguridad
Un texto en Markdown puede llevar etiquetas HTML mezcladas y, por defecto, un conversor las traslada sin cambios al resultado. La documentación de marked también indica que marked no sanea el HTML de salida y recomienda usar un filtro aparte. Cuando conviertes un texto escrito por otra persona o generado por una IA, pueden colarse scripts o acciones de clic, por eso la regla «HTML original» tiene tres opciones.
- Hacerlo seguro (estado inicial): elimina las etiquetas y los atributos que no están en la lista permitida.
script,style,iframe,object,embed,form, los campos de entrada ysvgse eliminan junto con su contenido, y también se quitan los atributos de evento on comoonclick, las direccionesjavascript:yvbscript:y las direccionesdata:que no sean imágenes. Lo eliminado aparece por tipo y cantidad en la tarjeta «HTML eliminado». - Dejarlo igual: no toca el HTML que escribiste. Elígela cuando necesites conservar una tabla hecha a mano o un código para insertar un vídeo; si quedan scripts o atributos on, la tarjeta «HTML peligroso sin quitar» te avisa.
- Mostrar como texto: muestra las etiquetas como caracteres literales en lugar de ejecutarlas. Úsala cuando el objetivo sea precisamente enseñar las etiquetas, como en un artículo sobre cómo usar HTML. La extensión «HTML en bruto no permitido» de GFM funciona igual con 9 etiquetas: convierte en texto el
<detitle,textarea,style,xmp,iframe,noembed,noframes,scriptyplaintext.
Elijas la regla que elijas, la vista web nunca ejecuta scripts. La vista previa se dibuja dentro de un iframe con sandbox al que no se le da allow-scripts y, según MDN, en ese caso no se permite ejecutar los scripts que contiene. Aun así, «Hacerlo seguro» no sustituye al filtro de seguridad del sitio donde vayas a pegar. Cada sitio acepta etiquetas distintas, así que, después de pegar, comprueba el resultado una vez más en la vista previa de ese sitio.
Cómo elegir la forma del HTML
| Forma | Dónde pegarlo | Qué contiene |
|---|---|---|
| Solo el cuerpo | El campo HTML de un blog o un CMS, o el cuerpo de una página web que construyes tú | Solo etiquetas como <h2>, <p> y <ul>. El estilo sigue el diseño del sitio donde pegues. |
| Con estilos | El cuerpo de un correo o un editor que elimina <style> | Pone el tamaño de letra, los márgenes, los bordes de las tablas y el fondo del código directamente en cada etiqueta con style="…". El aspecto es el mismo que el de la vista previa clara. |
| Documento completo | Un archivo .html que se abre directamente en el navegador | Incluye <!doctype html>, <meta charset="utf-8">, un título y <style>, y se ve con colores oscuros si el ordenador está en modo oscuro. «Guardar como archivo .html» usa siempre esta forma. |
| Copiar con formato | Un editor de correo o de documentos sin campo HTML | Deja en el portapapeles, a la vez, el HTML con estilos y el texto sin formato. El editor de destino usa el formato si lo admite y, si no, el texto sin formato. |
ID de títulos y enlaces dentro del documento
Un enlace que empieza por #, como [Instalación](#instalación), es un enlace de índice que salta a un título del mismo documento. Para que funcione, el título necesita una id con el mismo nombre, y marked no añade ids a los títulos. Si activas «ID de títulos», la herramienta añade las ids con las reglas que describe la documentación de GitHub: las letras pasan a minúsculas, los espacios se convierten en guiones (-), el resto de espacios y signos de puntuación se eliminan, y un título que vuelve a aparecer recibe -1, -2 y así sucesivamente. Si el documento tiene enlaces # y «ID de títulos» está desactivado, la tarjeta de revisión te avisa y puedes activarlo con el botón de la propia tarjeta.
| Título | Id resultante |
|---|---|
## Cómo instalar | cómo-instalar |
## Preguntas y respuestas (P&R) | preguntas-y-respuestas-pr |
## Novedades de 2026 | novedades-de-2026 |
## ¿Qué es C++? | qué-es-c |
## Cómo instalar (la segunda vez) | cómo-instalar-1 |
Qué te indica la lista de revisión
- Énfasis que queda como símbolos / Énfasis corregido: puntos donde el énfasis junto a un signo de puntuación deja asteriscos con las reglas estándar. Aparece como «Énfasis corregido» si la corrección está activada y como «Énfasis que queda como símbolos» si está desactivada.
- Saltos de línea simples unidos: puntos donde las líneas separadas sin línea en blanco se unieron con un espacio.
- Bloque de código sin cerrar: un bloque abierto con
```que nunca se cerró, de modo que todo el texto de debajo pasó a ser código. - Celdas de tabla de más: filas con más celdas que la fila de cabecera. GFM descarta las celdas sobrantes, así que su contenido se pierde.
- Direcciones relativas: imágenes o enlaces escritos sin la dirección del sitio, como
/images/a.pngodocs/a.md. En la vista previa se abren a partir de la dirección de esta página, pero pueden romperse al pegarlos en otro sitio. - Imágenes sin descripción: imágenes con el texto alternativo vacío, como
. - Nivel de título saltado: títulos que se saltan un nivel, como
####justo después de##. A quien sigue el índice con un lector de pantalla, la estructura le parece rota. - Enlaces que necesitan ID de títulos / Enlace # sin destino: enlaces dentro del documento que no tienen un título al que saltar o que no saltan porque «ID de títulos» está desactivado.
- HTML eliminado / HTML peligroso sin quitar / HTML mostrado como texto: etiquetas eliminadas, conservadas o mostradas como texto según la regla «HTML original».
Errores frecuentes
- Una lista numerada justo debajo de un párrafo: si escribes
2. elementodebajo de un párrafo sin línea en blanco, no se convierte en lista y se une al párrafo. El único número que puede interrumpir un párrafo y empezar una lista es el 1. Una lista con viñetas (- elemento) sí se convierte en lista aunque esté justo debajo de un párrafo. - Una línea con sangría de 4 espacios: cuatro espacios o un tabulador al principio de la línea crean un bloque de código. Los espacios que pusiste para sangrar un párrafo no aparecen en el resultado, así que bórralos.
---justo debajo de un texto: si para obtener una línea separadora escribes---en la línea inmediatamente inferior a un texto, el texto de arriba se convierte en un título de nivel 2. Deja una línea en blanco antes de la línea separadora.- Los metadatos (front matter) al principio del archivo: las líneas
title: …rodeadas de---al principio de un archivo .md para un sitio estático no son sintaxis de Markdown, así que se convierten en una línea separadora y un título. Bórralas antes de convertir. - Una dirección de enlace con espacios:
[archivo](mi documento.pdf)no se convierte en enlace. Rodéala como[archivo](<mi documento.pdf>)o escribe el espacio como%20. - La línea en blanco tras una tabla: una tabla puede empezar justo debajo de un párrafo, pero necesita una línea en blanco donde termina, o el texto siguiente entra dentro de la tabla.
- Volver a dar estilo en el sitio después de copiar: los estilos añadidos con la forma «Con estilos» tienen prioridad sobre el diseño del sitio donde pegues. Para que siga el diseño del sitio, elige «Solo el cuerpo».
Límites
- Las notas al pie (
[^1]), las fórmulas y la sintaxis de diagramas no forman parte de la sintaxis predeterminada de marked, así que se quedan como texto literal. - Los bloques de código no se colorean. El nombre del lenguaje se conserva como clase
language-…, así que el resaltado de código del sitio donde pegues decide los colores. - «Corregir énfasis» se aplica solo a
**,*y~~junto a kana, hangul o kanji; los guiones bajos y los triples asteriscos (***) siguen la regla estándar. - «Hacerlo seguro» se basa en la lista permitida de esta herramienta. Las etiquetas que filtra por su cuenta cada sitio son distintas de un sitio a otro.
- Las imágenes de la vista previa se cargan directamente desde la dirección escrita. El aspecto del resultado de «Copiar con formato» depende del editor donde pegues.
- Los textos de más de 2 MB no se convierten y, por encima de 30.000 caracteres, se desactiva el coloreado de sintaxis del editor.
Fuentes
Base: la sintaxis procede de las especificaciones CommonMark 0.31.2 y GFM 0.29-gfm, el comportamiento de la salida de marked 18.0.9, las funciones del navegador de MDN y la compatibilidad en el correo de caniemail.com, todo comprobado el 22 de octubre de 2026. El HTML de las tablas de arriba es la salida real de esta herramienta.
- 01CommonMark Spec 0.31.2Definición de delimitadores a izquierda y derecha (flanking), ejemplo 380, cuándo una lista interrumpe un párrafo, bloques de código con sangría
- 02GitHub Flavored Markdown Spec 0.29-gfmTablas, listas de tareas, tachado, enlaces automáticos, las 9 etiquetas HTML no permitidas, saltos de línea suaves y duros
- 03GitHub Docs — Basic writing and formatting syntaxDiferencias de salto de línea entre incidencias o comentarios y archivos .md, reglas de los enlaces a títulos (ids)
- 04Documentación de markedAviso de que el HTML de salida no se sanea y opciones gfm (activada por defecto) y breaks (desactivada por defecto)
- 05MDN — el atributo sandbox de iframeSin allow-scripts, los scripts no se ejecutan
- 06MDN — ClipboardItemCómo poner text/html y text/plain a la vez en el portapapeles
- 07Can I email — <style> elementGmail en la web no admite style dentro de body, límite de 16 KB
- 08RFC 7763 — The text/markdown Media TypeEl nombre de tipo de medio text/markdown para los archivos .md (marzo de 2016)
- 09John Gruber — MarkdownEl Markdown original, publicado en 2004, y su objetivo de lograr textos fáciles de leer
Preguntas frecuentes
¿Qué reglas sigue la conversión de Markdown a HTML?
Sigue la especificación GitHub Flavored Markdown (GFM) 0.29-gfm y el motor es marked 18.0.9. Incluye tablas, listas de tareas, tachado y enlaces automáticos. Solo con «Corregir énfasis» activado interpreta como énfasis el que va junto a signos de puntuación en textos japoneses, coreanos o chinos, algo distinto del estándar.
¿Por qué se siguen viendo los asteriscos en un texto como **"Importante"**y?
En CommonMark, una marca de cierre de énfasis que va justo después de un signo de puntuación debe ir seguida de un espacio en blanco o de otro signo de puntuación, así que si una letra sigue directamente a la comilla de cierre, el énfasis no se cierra. «Corregir énfasis» convierte estos casos solo cuando el carácter de fuera es kana, hangul o kanji, como en textos japoneses o coreanos. En español, pon el énfasis fuera de las comillas, como en "**Importante**", que funciona en cualquier sitio.
¿Por qué las líneas que separé salen unidas en una sola en el resultado?
Markdown separa los párrafos con una línea en blanco, y un salto de línea escrito sin ella se une con un solo espacio. Para conservar las líneas, pon dos espacios o una barra invertida al final de la línea, o elige '<br> en cada línea' en la regla de saltos de línea de las reglas de conversión.
¿Qué debo copiar para pegarlo en un blog o en un correo?
Si el editor tiene un campo HTML, pulsa «Copiar HTML» con la forma «Solo el cuerpo». Para un editor sin campo HTML, usa «Copiar con formato». Para los correos que eliminan <style>, usa la forma «Con estilos» y el aspecto se conservará.
¿Se ejecutan los scripts escritos dentro del Markdown?
La vista web se dibuja en un iframe con sandbox que no ejecuta scripts. En el HTML de salida, el ajuste inicial, «Hacerlo seguro», elimina script, los atributos de evento on y las direcciones javascript:. «Dejarlo igual» los conserva y la lista de revisión te avisa.
¿Se guarda mi texto en un servidor?
No. La conversión se hace solo en tu navegador. Con «Guardar en este navegador» activado, tu texto y tus reglas se guardan únicamente en el almacenamiento de este navegador (localStorage), y al desactivarlo se borra el texto guardado. Los textos de ejemplo nunca se guardan.
Al pulsar un enlace del índice no salta al título.
Un enlace como [Instalación](#instalación) solo funciona si el título tiene una id con el mismo nombre. Activa «ID de títulos» en las reglas de conversión y las ids se añaden con las reglas de GitHub: minúsculas, los espacios pasan a guiones, se eliminan los signos de puntuación y un título repetido recibe -1.
¿La herramienta colorea los bloques de código?
No. Conserva el nombre del lenguaje escrito como ```js en una clase language-js. Si el sitio donde pegues tiene resaltado de código, ese resaltado lee el nombre y añade los colores.