ToolDeck

Conversor de HTML a Markdown

Convierte HTML a formato Markdown

Prueba un ejemplo

Entrada HTML

Salida Markdown

Se ejecuta localmente · Es seguro pegar secretos
La salida Markdown aparecerá aquí…

¿Qué es la conversión de HTML a Markdown?

La conversión de HTML a Markdown transforma el marcado HTML en Markdown, una sintaxis de formato de texto plano ligera creada por John Gruber en 2004. Markdown fue diseñado para ser legible sin necesidad de renderizarse. Donde HTML requiere etiquetas de apertura y cierre como <strong> y <a href="">, Markdown usa caracteres abreviados: **negrita**, [enlaces](url) y # encabezados. Convertir HTML a Markdown produce archivos más fáciles de leer, editar y gestionar con control de versiones que el HTML sin procesar.

El proceso de conversión mapea los elementos HTML a sus equivalentes en Markdown. Un <h2> se convierte en ##, un <ul><li> en - elemento, y una etiqueta <a> en [texto](url). Algunos elementos HTML no tienen equivalente directo en Markdown, como <div>, <span> o los atributos de datos personalizados. Los conversores suelen eliminar estas etiquetas o pasarlas como HTML sin procesar, según la configuración.

Markdown se ha convertido en el formato de escritura estándar para documentación de desarrollo (GitHub, GitLab, Bitbucket), generadores de sitios estáticos (Hugo, Jekyll, Astro), aplicaciones de notas (Obsidian, Notion) y blogs técnicos. Convertir contenido HTML existente a Markdown es un paso habitual al migrar sitios web, importar contenido de un CMS o archivar páginas web en un formato portable. A diferencia del HTML, los archivos Markdown producen diferencias limpias en el control de versiones, lo que hace que la revisión de cambios en la documentación sea práctica.

¿Por qué usar un conversor de HTML a Markdown?

Reescribir HTML manualmente como Markdown es lento y propenso a errores, especialmente en páginas con listas anidadas, tablas o decenas de enlaces. Un conversor automatizado gestiona el mapeo estructural de forma instantánea y consistente.

Conversión instantánea en tu navegador
Pega el HTML y obtén la salida Markdown en milisegundos. Sin viajes al servidor, sin esperar colas de procesamiento. La conversión se ejecuta completamente en tu navegador usando JavaScript.
🔒
Tus datos permanecen privados
Tu HTML nunca abandona tu máquina. Todo el procesamiento ocurre en el cliente, por lo que no hay subida de archivos, ni registros, ni acceso de terceros a tu contenido.
📝
Preserva la estructura del documento
Los encabezados, listas, enlaces, imágenes, bloques de código y tablas se mapean a sus equivalentes correctos en Markdown. Las estructuras anidadas y el formato en línea se gestionan de forma recursiva.
🔀
Sin cuenta ni instalación
Abre la herramienta y empieza a convertir. No hay nada que instalar, ninguna clave API que configurar ni formulario de registro. Funciona en cualquier dispositivo con un navegador moderno.

Casos de uso de HTML a Markdown

Desarrollador frontend: migración de CMS
Exporta entradas de blog o páginas de WordPress, Drupal o un CMS headless como HTML, luego conviértelas a Markdown para usarlas con generadores de sitios estáticos como Next.js, Astro o Hugo.
Ingeniero backend: documentación de API
Convierte documentación HTML de API generada automáticamente en archivos Markdown que vivan junto a tu código fuente. Los documentos Markdown se integran con el renderizado de GitHub y pueden versionarse con el código que describen.
DevOps: conversión de runbooks
Transforma páginas de wikis internas (Confluence, SharePoint) exportadas como HTML en runbooks Markdown almacenados en tu repositorio Git junto al código de infraestructura que describen.
Ingeniero QA: documentación de casos de prueba
Convierte informes de prueba en HTML o planes de prueba manual de herramientas web en archivos Markdown que puedan revisarse en pull requests junto a los cambios de código que verifican.
Ingeniero de datos: limpieza de scraping web
Elimina el código HTML superfluo de páginas web extraídas y produce texto Markdown limpio. Esto elimina la navegación, los anuncios y el marcado de diseño mientras preserva el contenido y la estructura del artículo.
Estudiante: notas de investigación
Copia contenido de recursos web y convierte el HTML a Markdown para importarlo en Obsidian, Notion o cualquier sistema de notas basado en Markdown. Preserva encabezados, enlaces y formato.

Referencia de elementos HTML a Markdown

La tabla a continuación muestra cómo los elementos HTML más comunes se mapean a sus equivalentes en Markdown. Este mapeo sigue las convenciones de GitHub-Flavored Markdown (GFM), que amplían la especificación CommonMark con tablas, tachado y listas de tareas. Los elementos no listados aquí (como <div>, <form> o componentes web personalizados) no tienen equivalente en Markdown y se eliminan o se pasan como HTML sin procesar.

Elemento HTMLSintaxis MarkdownNotas
<h1>...<h6># ... ######ATX headings, level matches tag number
<p>Blank line separationDouble newline between paragraphs
<strong>, <b>**text**Bold / strong emphasis
<em>, <i>*text*Italic / emphasis
<a href="url">[text](url)Inline link with optional title
<img src="url">![alt](url)Image with alt text
<ul><li>- itemUnordered list with dash or asterisk
<ol><li>1. itemOrdered list, numbers restart per block
<blockquote>> textBlock quote, nestable with >>
<code>`code`Inline code span
<pre><code>```lang\ncode\n```Fenced code block with optional language
<hr>---Horizontal rule (three dashes)
<table>| col | col |GFM table syntax with alignment
<del>, <s>~~text~~Strikethrough (GFM extension)

Variantes de Markdown: GFM vs CommonMark vs Original

No todos los Markdown son iguales. El formato de salida importa porque distintas plataformas interpretan Markdown de forma diferente. Las tres variantes más comunes son GitHub-Flavored Markdown (GFM), CommonMark y el Markdown original de Gruber.

GitHub-Flavored Markdown (GFM)
La variante más utilizada. Añade tablas (sintaxis de barras verticales), tachado (~~texto~~), listas de tareas (- [x]) y URLs con enlace automático. Usado por GitHub, GitLab y la mayoría de herramientas de desarrollo. Este conversor genera Markdown compatible con GFM por defecto.
CommonMark
Una especificación estricta que resuelve ambigüedades en la sintaxis original de Markdown. Define reglas exactas para la continuación de listas, el análisis de énfasis y el anidamiento a nivel de bloque. Se usa como base para GFM y muchos generadores de sitios estáticos.
Markdown Original
La especificación de John Gruber de 2004. No admite tablas, bloques de código delimitados ni tachado. La mayoría de las herramientas modernas lo tratan como un subconjunto de CommonMark. Rara vez se usa como formato de destino hoy en día.

Ejemplos de código

Ejemplos funcionales en JavaScript (Turndown), Python (markdownify y html2text), Go y Pandoc en la línea de comandos.

JavaScript (Turndown)
import TurndownService from 'turndown'

const turndown = new TurndownService({ headingStyle: 'atx' })
const html = '<h1>Title</h1><p>A <strong>bold</strong> paragraph.</p>'
const md = turndown.turndown(html)
console.log(md)
// → "# Title\n\nA **bold** paragraph."
Python (markdownify)
from markdownify import markdownify

html = '<h2>Section</h2><ul><li>First</li><li>Second</li></ul>'
md = markdownify(html, heading_style='ATX')
print(md)
# → "## Section\n\n- First\n- Second"
Python (html2text)
import html2text

converter = html2text.HTML2Text()
converter.body_width = 0  # disable line wrapping

html = '<p>Visit <a href="https://example.com">Example</a> for details.</p>'
md = converter.handle(html)
print(md)
# → "Visit [Example](https://example.com) for details."
Go (html-to-markdown)
package main

import (
	"fmt"
	md "github.com/JohannesKaufmann/html-to-markdown"
)

func main() {
	converter := md.NewConverter("", true, nil)
	html := `<h3>Go Example</h3><p>Code: <code>fmt.Println()</code></p>`
	markdown, _ := converter.ConvertString(html)
	fmt.Println(markdown)
	// → "### Go Example\n\nCode: `fmt.Println()`"
}
CLI (Pandoc)
# Convert an HTML file to Markdown
pandoc input.html -f html -t markdown -o output.md

# Pipe HTML from stdin
echo '<p>Hello <em>world</em></p>' | pandoc -f html -t markdown
# → Hello *world*

# Use GitHub-Flavored Markdown output
pandoc input.html -f html -t gfm -o output.md

Preguntas frecuentes

¿Qué elementos HTML no se pueden convertir a Markdown?
Markdown no tiene equivalente para <div>, <span>, <form>, <input>, <iframe> ni para ningún elemento con clases CSS o estilos personalizados. La mayoría de los conversores eliminan estas etiquetas y conservan solo el texto interno. Algunos conversores pueden pasar el HTML no compatible sin modificar, lo cual es válido ya que la especificación de Markdown permite explícitamente HTML en línea. Si necesitas conservar esos elementos, configura tu conversor para mantener el HTML sin procesar en lugar de eliminarlo.
¿Cómo se convierten las tablas HTML a Markdown?
Las tablas HTML se mapean a la sintaxis de tabla con barras verticales de GFM: | Encabezado | Encabezado | con una fila separadora | --- | --- |. Las tablas GFM no admiten colspan, rowspan ni estilos a nivel de celda. Las tablas complejas con celdas combinadas se aplanan, lo que puede perder información estructural. Para tablas de datos simples, la conversión no tiene pérdidas.
¿La conversión de HTML a Markdown es sin pérdidas?
No. Markdown es un subconjunto de HTML, por lo que siempre se pierde información durante la conversión. Las clases CSS, los estilos en línea, los atributos de datos, los elementos de formulario y las etiquetas semánticas como <article> o <section> no tienen equivalente en Markdown. El contenido de texto y la estructura básica (encabezados, listas, enlaces, énfasis) se preservan con precisión. Para la mayoría de los flujos de trabajo de documentación y migración de contenido, los elementos preservados son los que realmente importan.
¿Cuál es la diferencia entre HTML a Markdown y HTML a texto plano?
HTML a texto plano elimina todo el formato y produce texto sin estructura. HTML a Markdown preserva la estructura del documento: los encabezados siguen siendo encabezados, los enlaces conservan sus URLs, las listas permanecen como listas y el énfasis se mantiene. La salida Markdown puede renderizarse de vuelta a HTML con la misma estructura lógica.
¿Puedo convertir Markdown de vuelta a HTML?
Sí. Todo procesador de Markdown (marked, markdown-it, Python-Markdown, goldmark) convierte Markdown a HTML. Este ciclo de ida y vuelta es una de las razones por las que Markdown es popular: escribes en un formato legible y renderizas a HTML para la web. El ciclo no es perfectamente simétrico porque la conversión de HTML a Markdown descarta los elementos no admitidos.
¿Cómo gestiona el conversor el HTML con CSS en línea o JavaScript?
El CSS en línea (atributos style) y los bloques <style> se eliminan durante la conversión, ya que Markdown no tiene sintaxis de estilos. El JavaScript (etiquetas <script> y manejadores de eventos como onclick) también se elimina. El conversor extrae únicamente el contenido y la estructura del documento. Esto convierte la conversión de HTML a Markdown en un paso útil de saneamiento al importar contenido HTML no confiable en tu documentación.
¿Qué variante de Markdown debo usar en mi proyecto?
Usa GitHub-Flavored Markdown (GFM) si tu contenido se verá en GitHub, GitLab o la mayoría de plataformas de documentación. Usa CommonMark si necesitas cumplimiento estricto de la especificación y un análisis predecible entre diferentes renderizadores. El Markdown original solo es relevante para sistemas heredados. GFM es el valor predeterminado más seguro para la mayoría de proyectos.