Trabajo con Markdown en Node.js: bibliotecas y herramientas para conversión

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con Markdown en Node.js: resumen de bibliotecas y herramientas

Markdown es un popular lenguaje de marcado utilizado para formatear texto en documentación, blogs, archivos README y plataformas educativas. En el ecosistema de Node.js existen varias bibliotecas potentes que permiten convertir Markdown a HTML, procesar código, tablas y otros elementos. En este artículo analizaremos las tres herramientas más populares: marked, remarkable y showdown, y revisaremos ejemplos de su uso.



1. Biblioteca marked

Marked es una de las bibliotecas más rápidas y ligeras para analizar Markdown. No tiene dependencias externas y es compatible con CommonMark y GFM (GitHub Flavored Markdown).



Instalación

npm install marked


Uso básico

const marked = require('marked');

const markdownString = '# TítuloEste es texto **negrita** y *cursiva*.

- Elemento 1- Elemento 2';

const html = marked.parse(markdownString);console.log(html);


Resultado de la ejecución:

<h1 id="título">Título</h1><p>Este es <strong>texto negrita</strong> y <em>cursiva</em>.</p><ul><li>Elemento 1</li><li>Elemento 2</li></ul>


Configuración de opciones

Marked admite múltiples opciones para un ajuste fino del análisis:

const marked = require('marked');

marked.setOptions({ breaks: true, // salto de línea a <br> gfm: true, // soporte GFM headerIds: false // desactivar id en encabezados});

const html = marked.parse('Línea 1Línea 2');console.log(html);// <p>Línea 1<br>Línea 2</p>


2. Biblioteca remarkable

Remarkable es una biblioteca flexible con soporte para plugins y extensiones. Permite añadir sintaxis para fórmulas matemáticas, diagramas y otros elementos específicos.



Instalación

npm install remarkable


Ejemplo de uso

const { Remarkable } = require('remarkable');const md = new Remarkable();

const markdown = '## Subtítulo

`code` y `código en línea`';const html = md.render(markdown);console.log(html);


Salida:

<h2>Subtítulo</h2><p><code>code</code> y <code>código en línea</code></p>


Plugins y extensiones

Remarkable admite plugins para procesar tablas, listas de tareas y otros elementos:

const { Remarkable } = require('remarkable');const md = new Remarkable({  html: true,  linkify: true});

// Añadir plugin para tablasmd.renderer.rules.table_open = function() { return '<table class="table">';};

const html = md.render('| Columna 1 | Columna 2 ||-----------|-----------|| Dato 1 | Dato 2 |');console.log(html);


3. Biblioteca showdown

Showdown es un puerto del Showdown original para JavaScript. Es fácil de usar y muy adecuado para aplicaciones cliente-servidor.



Instalación

npm install showdown


Ejemplo de código

const showdown = require('showdown');const converter = new showdown.Converter();

const markdown = '**Negrita** y *cursiva*';const html = converter.makeHtml(markdown);console.log(html);// <p><strong>Negrita</strong> y <em>cursiva</em></p>


Configuración de extensiones

Showdown admite extensiones que se pueden añadir para incorporar nuevas funcionalidades:

const showdown = require('showdown');

// Crear extensión para resaltado de códigoconst myExt = { type: 'output',

Recommendations