Markdown a HTML
Convierta Markdown — de un editor de CMS, un README, un ticket de soporte, un borrador generado por IA — en HTML limpio y saneado, listo para renderizar, sin alojar un parser propio ni preocuparse de que se cuele una etiqueta script. Procesa tanto CommonMark puro como las extensiones al estilo GitHub que la gente realmente usa en la práctica: tablas, listas de tareas, tachado y bloques de código con delimitadores.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Markdown es un formato de escritura, HTML es un formato de renderizado
Quienes redactan contenido escriben en Markdown porque es rápido y sin distracciones, pero los navegadores no renderizan Markdown: renderizan HTML, así que en algún punto entre el editor y la página tiene que ocurrir una conversión. Hacerla bien implica mucho más que cambiar asteriscos por etiquetas de negrita: significa manejar listas anidadas, citas anidadas, bloques de código anidados, enlaces dentro de énfasis, y hacerlo de forma consistente cada vez, que es justo donde fallan los conversores caseros basados en expresiones regulares.
CommonMark, GFM, y por qué importa la diferencia
CommonMark es la especificación impulsada por la comunidad que formalizó las reglas originalmente ambiguas de Markdown después de años en que cada implementación se comportaba un poco distinto; el Markdown al estilo GitHub (GFM) se construye sobre esa base agregando tablas, casillas de lista de tareas, tachado y enlace automático de URLs, extensiones que se volvieron tan comunes en READMEs y documentación que la mayoría de las herramientas ya las soportan por defecto. Nuestro endpoint procesa ambas, así que una tabla copiada de un README de GitHub se renderiza exactamente como se espera y no como una pared de caracteres de barra vertical.
Cómo funciona la conversión
POST /data/markdown-to-html recibe texto Markdown en crudo y devuelve HTML mediante un task_id, con la salida pasada por un proceso de saneamiento que elimina o neutraliza cualquier cosa que pudiera ejecutarse en un navegador — manejadores de eventos en línea, etiquetas script, enlaces con protocolos peligrosos — de modo que el resultado es seguro de insertar directamente en una página incluso cuando el Markdown original venía de una fuente no confiable, como un comentario de usuario o un formulario público.
Qué recibe de vuelta y en cuánto tiempo
La respuesta es HTML estándar con etiquetas semánticas — niveles de encabezado correctos, listas anidadas, marcado de tablas, bloques de código envueltos para resaltado de sintaxis — no una sopa de estilos en línea, así que encaja de forma limpia en cualquier plantilla o sistema de CSS existente. Un documento típico se convierte bien dentro de la ventana de respuesta, y para trabajos por lotes, como convertir una carpeta entera de documentación, envía cada archivo como su propia tarea y recoge los resultados vía webhook a medida que terminan.
Cómo encaja en un flujo de contenido
Este paso encaja de forma natural entre una herramienta de redacción y un destino de publicación: combínelo con nuestro conversor de HTML a Markdown para llevar contenido de ida y vuelta entre sistemas, o enlácelo después de un paso de generación de texto para que el Markdown redactado por IA llegue como HTML listo para publicar en su CMS sin un paso manual de copiar y pegar en el medio.
Qué puede hacer con ella
Renderizado en CMS headless
Guarde el contenido como Markdown por portabilidad y conviértalo a HTML bajo demanda al momento de renderizar, manteniendo el formato fuente amigable para editores y control de versiones.
Sistemas de tickets de soporte y comentarios
Sanee y renderice el Markdown enviado por usuarios finales para que el formato funcione sin abrir la puerta a scripts inyectados.
Pipelines de documentación
Convierta por lotes un repositorio entero de documentos Markdown a páginas HTML como parte de una construcción de sitio estático disparada por webhook.
Flujos de contenido generado por IA
Convierta el Markdown producido por un modelo de lenguaje en HTML listo para publicar antes de que llegue a la cola de borradores de su CMS.
Preguntas frecuentes
¿Cómo convierto Markdown a HTML con la API?
Envíe su texto Markdown por POST a /data/markdown-to-html; recibe un task_id y el HTML saneado resultante llega por webhook o enlace firmado.
¿Soporta el Markdown al estilo GitHub, como tablas y listas de tareas?
Sí, se soportan tanto CommonMark puro como las extensiones GFM: tablas, casillas de lista de tareas, tachado y enlaces automáticos.
¿El resultado es seguro para insertar directamente en una página web?
Sí, el HTML se sanea para eliminar scripts, manejadores de eventos en línea y enlaces peligrosos, así que es seguro incluso cuando el Markdown de origen viene de un usuario no confiable.
¿Existe un plan gratuito para el conversor de Markdown?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cuánto cuesta la conversión?
$0.002 por solicitud, sin importar la longitud del documento, y una conversión fallida tras los reintentos nunca se cobra.
¿Puedo convertir un lote grande de archivos Markdown a la vez?
Envíe cada archivo como su propia solicitud; como cada llamada es asíncrona, puede lanzar muchas en paralelo y recoger los resultados conforme cada webhook se dispara.
¿Conserva las pistas de resaltado de sintaxis de los bloques de código?
Sí, los bloques de código con delimitadores conservan su anotación de lenguaje en el marcado de salida para que un resaltador del lado del cliente pueda usarla.
¿En qué se diferencia de una biblioteca de Markdown en JavaScript del lado del cliente?
Se ejecuta en el servidor, así que no añade peso al bundle del navegador, y el saneamiento ocurre antes de que el HTML llegue al cliente, lo cual es más seguro para contenido no confiable.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/data/markdown-to-html \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/markdown-to-html", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/markdown-to-html",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/markdown-to-html", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/markdown-to-html", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.markdown_to_html",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |