Trabalhando com Markdown em Node.js: bibliotecas e ferramentas para conversão

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Markdown em Node.js: visão geral de bibliotecas e ferramentas

Markdown é uma linguagem de marcação popular, usada para formatar texto em documentação, blogs, arquivos README e plataformas educacionais. No ecossistema Node.js, existem várias bibliotecas poderosas que permitem converter Markdown para HTML, processar código, tabelas e outros elementos. Neste artigo, veremos três das ferramentas mais populares: marked, remarkable e showdown, além de analisarmos exemplos de uso.



1. Biblioteca marked

Marked é uma das bibliotecas mais rápidas e leves para parsing de Markdown. Ela não possui dependências externas e suporta CommonMark e GFM (GitHub Flavored Markdown).



Instalação

npm install marked


Uso básico

const marked = require('marked');

const markdownString = '# TítuloEste é um texto **negrito** e *itálico*.

- Item 1- Item 2';

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


Resultado da execução:

<h1 id="título">Título</h1><p>Este é um texto <strong>negrito</strong> e <em>itálico</em>.</p><ul><li>Item 1</li><li>Item 2</li></ul>


Configuração de opções

Marked suporta várias opções para ajuste fino do parsing:

const marked = require('marked');

marked.setOptions({ breaks: true, // quebra de linhas em <br> gfm: true, // suporte a GFM headerIds: false // desabilitar id nos cabeçalhos});

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


2. Biblioteca remarkable

Remarkable é uma biblioteca flexível com suporte a plugins e extensões. Ela permite adicionar sintaxe para fórmulas matemáticas, diagramas e outros elementos específicos.



Instalação

npm install remarkable


Exemplo de uso

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

const markdown = '## Subtítulo

`code` e `código inline`';const html = md.render(markdown);console.log(html);


Saída:

<h2>Subtítulo</h2><p><code>code</code> e <code>código inline</code></p>


Plugins e extensões

Remarkable suporta plugins para processar tabelas, listas de tarefas e outros elementos:

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

// Adicionando plugin para tabelasmd.renderer.rules.table_open = function() { return '<table class="table">';};

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


3. Biblioteca showdown

Showdown é um port do Showdown original para JavaScript. É simples de usar e adequado para aplicações cliente-servidor.



Instalação

npm install showdown


Exemplo de código

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

const markdown = '**Negrito** e *itálico*';const html = converter.makeHtml(markdown);console.log(html);// <p><strong>Negrito</strong> e <em>itálico</em></p>


Configuração de extensões

Showdown suporta extensões que podem ser adicionadas para incluir novas funcionalidades:

const showdown = require('showdown');

// Criando uma extensão para realce de códigoconst myExt = { type: 'output',

Recommendations