Cómo convertir HTML a Markdown con JavaScript

Markdown es un lenguaje de marcado ligero con una sintaxis de formato de texto sin formato que se puede convertir a muchos otros formatos de salida. Proporciona una forma sencilla de agregar formato HTML como encabezados, negrita, cursiva, listas con viñetas, imágenes, etc. al texto sin formato.

En este artículo, aprenderá cómo convertir HTML en Markdown en una aplicación Node.js, así como en un navegador web utilizando la biblioteca Turndown. Turndown es un conversor personalizable de HTML a Markdown escrito en JavaScript estándar.

Uso de Node.js

Para usar Turndown como un módulo de Node.js, escriba el siguiente comando en su terminal para instalarlo desde el registro de NPM:

$ npm install turndown --save

Una vez completada la instalación, podrá importar el módulo Turndown a su aplicación Node.js como se muestra a continuación:

// import Turndown module
const TurndownService = require('turndown');

Ahora puede usar la API Turndown para convertir fácilmente cualquier cadena HTML a Markdown:

// create an instance of Turndown service
const turndownService = new TurndownService();

// convert HTML to Markdown
const markdown = turndownService.turndown(`
    <h1>JavaScript for Beginners</h1>
    <p>Follow <a href="https://attacomsian.com/blog">Atta</a> to learn <b>JavaScript</b> from scratch!</p>
`);

// output Markdown
console.log(markdown);

Debería ver el siguiente resultado impreso en la consola:

JavaScript for Beginners
========================

Follow [Atta](https://attacomsian.com/blog) to learn **JavaScript** from scratch!

Uso de JavaScript estándar

Turndown también se puede usar en un navegador web para convertir HTML a Markdown. Simplemente incluya el siguiente archivo JavaScript en su documento HTML:

<script src="https://unpkg.com/turndown/dist/turndown.js"></script>

Después de incluir el script, debería poder convertir HTML a Markdown usando el mismo código que hemos usado en el ejemplo anterior:

// create an instance of Turndown service
const turndownService = new TurndownService();

// convert HTML to Markdown
const markdown = turndownService.turndown(`
    <h1>JavaScript for Beginners</h1>
    <p>Follow <a href="https://attacomsian.com/blog">Atta</a> to learn <b>JavaScript</b> from scratch!</p>
`);

// output Markdown
console.log(markdown);

En JavaScript estándar, incluso puede pasar nodos DOM como entrada a la API de Turndown:

// convert document <body> to Markdown
const markdown = turndownService.turndown(document.body);

// convert first <p> tag to Markdown
const markdown = turndownService.turndown(document.querySelector('p'));

Eche un vistazo a la documentación o la demostración interactiva para obtener más información sobre las funciones de Turndown.