Conversor de HTML a Markdown
Pega HTML abajo — el Markdown limpio aparece al instante. Nada de lo que pegues sale de tu navegador.
Análisis DOM real, seguido de un recorrido de árbol sencillo
Esta herramienta le pasa tu HTML a DOMParser — el
mismo analizador que usa tu navegador para cada página que
renderiza — en lugar de intentar escribir a mano expresiones
regulares sobre texto HTML crudo, que es exactamente el tipo de
enfoque que se rompe en cuanto se encuentra con marcado real con
anidamiento poco habitual o etiquetas sin cerrar. Una vez que
tiene un árbol DOM correcto, lo recorre entero de forma
recursiva: las etiquetas de bloque como encabezados, listas y
citas se convierten en su equivalente Markdown, las etiquetas en
línea como negrita, cursiva, enlaces y código se convierten en
su sintaxis Markdown en línea, y el texto plano se conserva con
los espacios en blanco reducidos como lo haría un navegador. Ver
las preguntas frecuentes para saber exactamente qué etiquetas
se cubren y cuáles quedan deliberadamente fuera de alcance.
Ejemplo práctico
Entrada:
<h2>Lista de la Compra</h2> <p>No olvides la <strong>leche</strong> y el <em>pan</em>.</p> <ul> <li>Leche</li> <li>Pan</li> <li>Huevos</li> </ul> <blockquote>Revisa el cupón antes de pagar.</blockquote>
Salida:
## Lista de la Compra No olvides la **leche** y el *pan*. - Leche - Pan - Huevos > Revisa el cupón antes de pagar.
Preguntas frecuentes
¿Esta herramienta procesa cualquier HTML que le pase?
Convierte un subconjunto documentado y honesto — las etiquetas que la gente realmente usa para contenido cotidiano: encabezados (h1–h6), negrita (strong/b), cursiva (em/i), enlaces, imágenes, listas de un solo nivel ordenadas y sin ordenar, citas, líneas horizontales, párrafos y saltos de línea, además de código en línea y bloques de código con delimitadores (pre / pre > code). No intenta procesar tablas, listas anidadas, listas de definiciones ni marcado de maquetación como divs y spans usados solo para estilo — esos elementos se omiten o su texto se recorre sin añadir sintaxis Markdown especial. Para una entrada de blog, un artículo o un fragmento de contenido con formato, ese subconjunto cubre la gran mayoría del HTML real; no es un compilador genérico de HTML a Markdown para páginas web arbitrarias.
¿Por qué usa el DOMParser propio del navegador en lugar de un analizador de HTML hecho a mano?
Porque el análisis de HTML es un problema genuinamente difícil que ya está resuelto correctamente, gratis, por cada motor de navegador. El HTML del mundo real está lleno de casos límite — etiquetas sin cerrar, reglas implícitas de cierre de etiquetas, atributos sin comillas, anidamiento incorrecto — para los que la especificación HTML define un comportamiento de recuperación preciso, precisamente porque los analizadores hechos a mano suelen fallar en ellos de forma sutil. Esta herramienta analiza con new DOMParser().parseFromString(html, "text/html") — el mismo motor que usa tu navegador para renderizar cualquier página que visitas — y luego recorre el árbol DOM resultante, ya correcto. Es una decisión de ingeniería deliberada: no reinventar algo notoriamente fácil de hacer mal cuando ya hay una implementación correcta dentro del propio navegador.
¿Se sube mi HTML a algún servidor?
No. El análisis y todo el recorrido del árbol ocurren localmente, en tu navegador; nada de lo que pegues se transmite ni se guarda en un servidor. Esto es así para cada herramienta de este sitio, y aquí importa especialmente porque el HTML que estás convirtiendo suele ser un borrador sin publicar o contenido tomado de algún sitio que preferirías no volver a subir.
¿Qué pasa con una lista anidada, como un <ul> dentro de un <li>?
Queda fuera del alcance documentado de esta herramienta, con toda honestidad. Este conversor maneja de forma fiable un nivel de anidamiento de listas — un ul o ol sencillo con hijos li. Una lista anidada dentro de un elemento de otra lista no se detecta específicamente, así que sus elementos se recorren como texto plano en lugar de reproducirse como una lista Markdown anidada correctamente indentada. Si necesitas una conversión perfecta de listas anidadas, esta no es esa herramienta; para las listas planas de un solo nivel que usa la mayoría del contenido cotidiano, convierte de forma limpia.
¿Conserva exactamente los espacios en blanco y la indentación de mi HTML?
Solo donde debe. Fuera de <pre> y los bloques de código, las secuencias de espacios en blanco del texto — espacios extra, saltos de línea del código fuente con formato bonito — se reducen a un único espacio, igual que un navegador renderiza el texto HTML normal; esto evita que la indentación de tu HTML de origen se filtre al Markdown como saltos de línea sueltos. Dentro de <pre> o <pre><code>, el contenido de texto original se lee y se reproduce exactamente, espacios incluidos, porque precisamente ese es el contenido que un bloque de código con delimitadores debe conservar.