piapia123
es

HTML a Markdown

Texto

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Convierte un bloque de HTML en Markdown. Se cubren títulos, párrafos, negrita y cursiva, enlaces e imágenes, citas, listas ordenadas y desordenadas (también anidadas), bloques de código delimitados con el lenguaje tomado de la clase, y tablas de barras al estilo GFM — el contenido copiado de una página web, de un editor de texto enriquecido o de un editor de Markdown se puede pegar tal cual. Tres cosas merecen mención aparte: los caracteres del cuerpo que chocan con la sintaxis de Markdown se escapan (si no, una línea con `*` se renderiza en cursiva y el usuario solo ve que la salida cambió de forma sin motivo); la valla del bloque de código crece para ajustarse a los acentos graves del contenido (un cuerpo con tres acentos graves cerraría el bloque antes de tiempo y volcaría el resto al texto de la página); y las URL `javascript:` no se convierten en enlaces, solo en texto: la salida va a tu propio blog y un punto de entrada XSS clicable no es algo que esta herramienta deba producir.

Funciones

  • Títulos, párrafos, negrita, cursiva, tachado, código en línea, enlaces e imágenes
  • Listas ordenadas y desordenadas, anidadas incluidas, con sangría a juego con el marcador — lo que también cubre la forma sin </li>
  • Bloques de código delimitados, con el lenguaje leído de class="language-xxx" o "lang-xxx"
  • Tablas de barras GFM, rellenando las celdas que faltan y escapando las barras de dentro
  • Citas, reglas horizontales y saltos de línea forzados
  • Los caracteres de sintaxis de Markdown del cuerpo se escapan para que no se interpreten como formato
  • La valla del código crece automáticamente cuando el contenido lleva acentos graves
  • Las URL javascript: y data: no se convierten en enlaces clicables
  • script y style se descartan enteros en vez de acabar en la salida
  • Las etiquetas desconocidas conservan su texto y pierden su marcado, así que la salida nunca mezcla dos sintaxis
  • Los fragmentos exportados por editores de texto enriquecido (UEditor, CKEditor, TinyMCE) con estilos en línea se pegan tal cual
  • Todo se ejecuta localmente en el navegador; tu contenido nunca se sube

Cómo se usa

  1. Pega el HTML
  2. Desactiva la opción de línea en blanco para un diseño más compacto
  3. Copia el resultado en tu blog, tu gestor de incidencias, tu documentación o tu README

Preguntas frecuentes

¿Por qué un asterisco de mi texto se volvió \*?
Porque Markdown lee `*` como el inicio de la cursiva. Una línea con `a*b*c` se renderizaría como `a` más una `b` en cursiva más `c` — el usuario solo ve que la salida cambió de forma sin motivo. Escapada a `a\*b\*c` se renderiza como los caracteres que había. Lo mismo vale para los acentos graves, los guiones bajos, los corchetes y los ángulos. `#` y `-` se dejan a propósito: solo tienen significado de bloque al principio de línea, y escaparlos en todas partes llenaría la salida de barras invertidas (`C#` se volvería `C\#`).
¿De dónde sale el lenguaje del bloque de código?
De la clase de `<pre><code class="language-js">`; se reconocen los prefijos `language-` y `lang-` (el primero es lo que emiten GitHub y highlight.js, el segundo Prism). Sin ninguno, la valla sale sin lenguaje. La valla además se alarga sola cuando el contenido lleva tres acentos graves; si no, el bloque se cerraría antes de tiempo en esa línea y todo lo que viniera después se volvería texto de la página.
¿Por qué un enlace se degradó a texto plano?
Porque su dirección usaba un esquema como `javascript:` o `data:`. Casi nunca tienen cabida en la prosa, y la salida va a tu propio blog o a tu gestor de incidencias: un `[pincha aquí](javascript:...)` pegado ahí es un punto de entrada XSS clicable. Esta herramienta solo deja pasar http, https, ftp, mailto, tel y similares, y conserva el texto en cualquier otro caso.
¿Por qué mi tabla sale con una fila de encabezado?
Porque una tabla de Markdown tiene que tener una: no hay forma de expresar filas sin encabezado con la sintaxis de barras. Así que cuando la tabla de origen es todo `<td>`, la primera fila se vuelve el encabezado. Las celdas que faltan se rellenan, y una barra dentro de una celda se escapa a `\|`, ya que una sin escapar partiría la tabla en dos.
¿Sirve para lo que exportan UEditor y editores parecidos?
Sí. La salida de los editores suele traer un montón de estilos en línea (`text-indent`, `font-family`, `text-align`) y capas de `<div>` y `<span>` anidados. Esta herramienta descarta el estilo y conserva el texto, porque esos estilos no tienen equivalente en Markdown y forzarlos a HTML en línea haría la salida ilegible. Es un compromiso deliberado: texto limpio en lugar de HTML con su estilo original encima.
¿Se sube mi contenido?
No. La conversión ocurre por completo en la memoria del navegador; la página no hace ninguna petición y funciona sin conexión.

Herramientas relacionadas