Convertidor de Markdown a HTML

Convierte Markdown en HTML limpio con vista previa en vivo — encabezados, listas, enlaces, bloques de código y más, todo en tu navegador.

1.117 visitas

Cómo Funciona

Este convertidor sigue la especificación CommonMark — una versión de Markdown definida con precisión que resuelve las ambigüedades que dejaba abiertas la descripción original de Markdown de 2004 (cómo interactúan las listas anidadas con los párrafos sueltos, qué ocurre cuando un marcador de lista aparece dentro de una cita, etc.). El análisis se realiza en dos pasadas distintas. La primera es a nivel de bloque: el texto se divide en unidades estructurales — párrafos, encabezados ATX (# hasta ######), bloques de código delimitados, citas, listas ordenadas y no ordenadas, líneas horizontales — leyendo solo la estructura de líneas y la sangría, sin mirar todavía el contenido de cada bloque. La segunda pasada es en línea: dentro de cada bloque, el analizador busca marcadores de énfasis (*cursiva*, **negrita**), fragmentos de código en línea (`código`) y sintaxis de enlaces o imágenes ([texto](url)), reescribiéndolos como las etiquetas HTML correspondientes. Este diseño en dos fases explica por qué un asterisco dentro de un bloque de código delimitado queda intacto — los bloques de código se resuelven por completo en la primera pasada, antes de que las reglas de énfasis en línea lleguen a tocar su contenido.

Ejemplo: dado ## Notas de la versión seguido de una línea en blanco y - **v2.1**: correcciones, el análisis a nivel de bloque identifica primero un encabezado y una lista con un elemento; el análisis en línea convierte luego **v2.1** en <strong>v2.1</strong> dentro del <li>. Las tablas siguen la extensión GFM (GitHub Flavored Markdown) añadida sobre CommonMark: una fila de encabezado, una fila separadora --- cuya colocación de dos puntos (:--, :-:, --:) fija la alineación de esa columna, y cualquier número de filas de datos debajo.

Qué Hay que Saber

  • El HTML sin procesar se escapa, no se ejecuta — pegar una etiqueta script o un manejador de eventos en línea se muestra como texto visible en lugar de ejecutarse, una elección de seguridad deliberada para contenido pegado o no confiable.
  • Las listas sueltas y compactas cambian la salida — una línea en blanco entre elementos de lista obliga a CommonMark a envolver cada elemento en su propio <p> (lista "suelta"); sin líneas en blanco, los elementos se mantienen como contenido en línea plano (lista "compacta"), lo que cambia el espaciado vertical en el HTML resultante.
  • El anidamiento muy profundo tiene un límite práctico — cuatro o más niveles de listas anidadas o definiciones de enlaces por referencia son CommonMark válido, pero son casos límite mejor atendidos por un analizador dedicado en tiempo de compilación que por una vista previa en vivo dentro del navegador.

Preguntas Frecuentes

¿Se admiten tablas?

Sí, mediante la extensión de tablas GFM (GitHub Flavored Markdown): una fila de encabezado, una fila separadora --- y cualquier número de filas de datos, todas delimitadas por barras verticales. Poner dos puntos en cualquier extremo de las celdas separadoras (:--, :-:, --:) fija la alineación izquierda, central o derecha de esa columna — esto es una extensión sobre el CommonMark básico, no parte de la especificación original.

¿Por qué mi etiqueta HTML aparece como texto en lugar de renderizarse?

Es intencional. El HTML sin procesar de la entrada se escapa en lugar de pasarse tal cual a la salida, así que una etiqueta <script> pegada o un atributo onclick aparecen como texto literal en lugar de ejecutarse — esto es lo que hace seguro pegar contenido no confiable. Escribe el equivalente en sintaxis Markdown, o quita el escape manualmente después si confías plenamente en la fuente.

¿El espaciado de líneas sigue las reglas de Markdown al pie de la letra?

Sí: una línea en blanco entre líneas de texto separa párrafos, y terminar una línea con dos espacios finales antes del salto produce un <br> en lugar de un cambio de párrafo. Un único salto de línea en medio de un párrafo simplemente se une a la misma línea, tal como especifica CommonMark — esto suele sorprender a quienes vienen de editores de texto plano donde cada salto de línea es significativo.

¿Por qué el formato dentro de una lista anidada o un bloque de código a veces se ve inesperado?

Porque el análisis es de dos fases: la estructura de bloque (listas, bloques de código, citas) se resuelve primero, únicamente a partir de la sangría y los marcadores de línea, antes de aplicar cualquier formato en línea (negrita, cursiva, enlaces) dentro de cada bloque. El contenido dentro de un bloque de código delimitado nunca es tocado por la pasada en línea, así que **esto** permanece como texto literal ahí en lugar de volverse negrita — es el comportamiento esperado de CommonMark, no un error.

¿Cuál es la diferencia entre el CommonMark básico y las funciones "GitHub Flavored"?

El CommonMark básico define con precisión encabezados, énfasis, listas, citas, bloques de código y enlaces. Las tablas, el tachado (~~texto~~) y las casillas de listas de tareas ([ ] / [x]) son extensiones GFM añadidas sobre esa base — ampliamente soportadas por conversores como este, pero no garantizadas en cada implementación estrictamente CommonMark en la que puedas pegar el resultado más adelante.

Comentarios

Aún no hay comentarios — ¡sé el primero en escribir uno!

Herramientas Similares