Convierte Markdown a HTML de forma online y gratuita directamente en tu navegador
Usa este conversor para transformar tu Markdown en HTML listo para copiar, previsualizar o descargar.
HTML es el formato más natural al que convertir Markdown, ya que Markdown fue diseñado originalmente como una forma simplificada de escribir HTML. La conversión de Markdown a HTML es directa y no pierde información.
Estas son las principales razones para convertir Markdown a HTML:
Existen varias formas de convertir Markdown a HTML:
Estas son algunas herramientas online para convertir Markdown a HTML:
Si necesitas automatizar la conversión, puedes usar librerías como:
Puedes usar Pandoc para convertir desde la terminal:
pandoc archivo.md -o archivo.htmlEl siguiente código Markdown:
# Título
Un párrafo con **negrita** y *cursiva*.
- Elemento 1
- Elemento 2Se convierte en el siguiente HTML:
<h1>Título</h1>
<p>Un párrafo con <strong>negrita</strong> y <em>cursiva</em>.</p>
<ul>
<li>Elemento 1</li>
<li>Elemento 2</li>
</ul>El comando básico de Pandoc genera un fragmento de HTML. Si necesitas un documento HTML completo con <head>, <body> y metadatos, usa la opción --standalone:
pandoc archivo.md -o archivo.html --standalonePuedes vincular un archivo CSS personalizado para controlar la apariencia del HTML generado:
pandoc archivo.md -o archivo.html --standalone --css=estilo.cssEsto añade un <link rel="stylesheet" href="estilo.css"> en el <head> del documento. Puedes especificar varias hojas de estilo repitiendo el parámetro:
pandoc archivo.md -o archivo.html --standalone --css=reset.css --css=estilo.cssSi necesitas control total sobre la estructura del documento, puedes crear una plantilla HTML propia y pasarla a Pandoc:
pandoc archivo.md -o archivo.html --template=plantilla.htmlPara generar la plantilla por defecto de Pandoc y usarla como punto de partida:
pandoc -D html > plantilla.htmlDentro de la plantilla puedes usar variables como $title$, $body$, $author$ y $date$, que se rellenan automáticamente desde los metadatos YAML del archivo Markdown:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>$title$</title>
<link rel="stylesheet" href="estilo.css">
</head>
<body>
<header>
<h1>$title$</h1>
<p>Por $author$ — $date$</p>
</header>
<main>
$body$
</main>
</body>
</html># Generar tabla de contenidos automática
pandoc archivo.md -o archivo.html --standalone --toc
# Resaltar código con un estilo concreto
pandoc archivo.md -o archivo.html --standalone --highlight-style=tango
# Incluir MathJax para fórmulas matemáticas
pandoc archivo.md -o archivo.html --standalone --mathjaxLa librería marked es una de las más populares para convertir Markdown a HTML en JavaScript. Este es un ejemplo completo con opciones de configuración:
import { marked } from 'marked';
// Configurar las opciones de marked
marked.setOptions({
gfm: true, // Activar GitHub Flavored Markdown
breaks: true, // Convertir saltos de línea en <br>
pedantic: false, // No seguir la especificación original de Markdown al pie de la letra
});
const markdownText = `
# Mi documento
Un párrafo con **negrita** y un enlace a [Google](https://google.com).
## Lista de tareas
- [x] Tarea completada
- [ ] Tarea pendiente
## Código
\`\`\`javascript
console.log("Hola mundo");
\`\`\`
| Columna 1 | Columna 2 |
|-----------|-----------|
| Dato A | Dato B |
`;
const html = marked.parse(markdownText);
console.log(html);Si necesitas modificar cómo se generan ciertos elementos HTML, puedes crear un renderer personalizado:
import { marked } from 'marked';
const renderer = new marked.Renderer();
// Hacer que todos los enlaces se abran en una pestaña nueva
renderer.link = function (href, title, text) {
const titleAttr = title ? ` title="${title}"` : '';
return `<a href="${href}"${titleAttr} target="_blank" rel="noopener noreferrer">${text}</a>`;
};
// Añadir una clase CSS a las imágenes
renderer.image = function (href, title, text) {
const titleAttr = title ? ` title="${title}"` : '';
return `<img src="${href}" alt="${text}"${titleAttr} class="md-image" loading="lazy">`;
};
marked.setOptions({ renderer });
const html = marked.parse('Visita [mi sitio](https://ejemplo.com)');
// Resultado: <p>Visita <a href="https://ejemplo.com" target="_blank" rel="noopener noreferrer">mi sitio</a></p>Otra librería muy popular es markdown-it, que destaca por su sistema de plugins:
import MarkdownIt from 'markdown-it';
import markdownItAnchor from 'markdown-it-anchor';
import markdownItToc from 'markdown-it-table-of-contents';
const md = new MarkdownIt({
html: true, // Permitir HTML dentro del Markdown
linkify: true, // Convertir URLs automáticamente en enlaces
typographer: true, // Reemplazar comillas y guiones por versiones tipográficas
});
// Añadir plugins
md.use(markdownItAnchor); // Añadir anclas a los encabezados
md.use(markdownItToc); // Generar tabla de contenidos con [[toc]]
const resultado = md.render('# Título\n\nTexto con https://ejemplo.com automático');No todos los procesadores de Markdown generan el mismo HTML. Existen varias especificaciones y extensiones que afectan al resultado final:
CommonMark es la especificación más estricta y precisa de Markdown. Define reglas claras para casos ambiguos que la especificación original de John Gruber dejaba sin resolver. Herramientas como markdown-it y cmark siguen esta especificación.
GFM es una extensión de CommonMark creada por GitHub. Añade soporte para:
| y - para crear filas y columnas.- [x] y - [ ].~~texto~~.```javascript para resaltado de sintaxis.MultiMarkdown añade funcionalidades avanzadas como:
Un mismo texto puede renderizarse de forma diferente según el procesador:
Línea 1
Línea 2Así se comporta cada procesador:
<p>Línea 1\nLínea 2</p>).breaks: true: Las separa con un salto de línea (<p>Línea 1<br>Línea 2</p>).<br>.| Procesador | Mejor para | Herramientas |
|---|---|---|
| CommonMark | Máxima compatibilidad y consistencia | markdown-it, cmark |
| GFM | Proyectos alojados en GitHub | marked (con gfm: true), github-markdown-css |
| MultiMarkdown | Documentos académicos y complejos | MultiMarkdown CLI, Scrivener |
| Pandoc Markdown | Máxima flexibilidad y conversión | Pandoc |
👋 Hola! Soy Edu, me encanta crear cosas y he redactado este tutorial. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirlo en Twitter.
Sígueme en Twitter para estar al día con mi contenido. 😊