Conversor HTML a JavaScript Markdown

Buscando una biblioteca de JavaScript que debería convertir el código HTML al formato Markdown.

Debe tener las siguientes características:

  • convertir etiquetas HTML básicas a Markdown ( ,, h1...6etc. )precode
  • mantenga el código HTML si no tiene un correspondiente en Markdown (por ejemplo iframe)
  • trabajar en el lado del servidor (NodeJS)
  • trabajar en el lado del cliente (navegador)

Los primeros tres puntos son importantes para mí, pero cualquier recomendación/sugerencia es bienvenida.


Ejemplos

HTML                                    | Converted
----------------------------------------+---------------------------------
<h1>Hello World</h1>                    | # Hello World
----------------------------------------+---------------------------------
<h1 class="foo">Hello World</h1>        | <h1 class="foo">Hello World</h1>
----------------------------------------+---------------------------------
<p>Lorem ipsum</p>                      | Lorem ipsum
----------------------------------------+---------------------------------
<p data-something="foo">Lorem ipsum</p> | <p data-something="foo">Lorem ipsum</p>
----------------------------------------+---------------------------------
<img src="something">                   | ![](something)
----------------------------------------+---------------------------------
<a href="...">foo</a>                   | [foo](...)
----------------------------------------+---------------------------------
<a disabled="" href="...">foo</a>       | <a disabled="" href="...">foo</a>
¿Estaría interesado en una opción solo del lado del servidor? No conozco ninguno que sea ambos o solo del lado del navegador, pero sí conozco uno que es del lado del servidor.
@NickWilde Eso sería perfecto. Si funciona en el lado del servidor, también debería funcionar en el lado del cliente. ¡Gracias!
Recomendaría el to-markdown en github. > Un conversor de HTML a Markdown escrito en JavaScript

Respuestas (1)

Por lo general, me gusta mucho Pandoc para todas mis necesidades de conversión de formato de texto. Sin embargo, está basado en Haskell, aunque tiene opciones fáciles de instalar/ejecutar para la mayoría de los sistemas operativos. Por supuesto, no se puede ejecutar a través de JavaScript muy bien. Seguro que puedes trabajar en algo con Node.js y flujos; pero para qué molestarse cuando ya se ha hecho: Jandoc .

Jandoc hace todo lo que hace Pandoc pero con contenedores de JavaScript (Node.js).

La instalación es un poco complicada;

  1. Instalar Node.js
  2. Instale la Plataforma Haskell .
  3. Ejecute cmd prompt y ejecute cabal update(eso no actualiza cabal solo la lista de fuentes del paquete, para actualizar cabal (si lo desea/necesita) ejecute cabal install cabal-install)
  4. indicador de cmd: cabal install pandoc(Tomará un tiempo)
  5. indicador de cmd:npm install jandoc -g

La información de la API se encuentra en el archivo Léame de Jandoc .

Para repasar sus requisitos:

  • convertir etiquetas HTML básicas a Markdown (h1...6, pre, código, etc.):
  • mantenga el código HTML si no tiene un correspondiente en Markdown (por ejemplo, iframe): Sí, si usa la opción -R/--parse-raw . Entonces, para Jandoc a través de la API de JavaScript, solo incluiría un parseRaw: Trueargumento en su lista de opciones.
  • trabajar en el lado del servidor (Node.JS):
  • trabajar en el lado del cliente (navegador): NO. Tampoco es fácilmente portátil para el uso del navegador.
Uno podría usar el compilador apresurado para convertir de Haskell a ECMAScript, pero dudo que esta tarea sea fácil.
Sí, estoy seguro de que podría hacerse, pero sinceramente, solo admitir html->md sería mucho más simple hacerlo desde cero con algunos reemplazos de expresiones regulares.
Hola Nick, gracias por la respuesta. Lo revisaré pronto, pero estoy ocupado con los exámenes de bachillerato.
@NickWilde Si eso es posible con algunas expresiones regulares simples, elegiría esa manera. Estoy probando la forma Haskell.