Travailler avec Markdown dans Node.js : aperçu des bibliothèques et outils
Markdown est un langage de balisage populaire utilisé pour formater du texte dans la documentation, les blogs, les fichiers README et les plateformes éducatives. Dans l'écosystème Node.js, il existe plusieurs bibliothèques puissantes qui permettent de convertir Markdown en HTML, de traiter le code, les tableaux et d'autres éléments. Dans cet article, nous examinerons trois outils les plus populaires : marked, remarkable et showdown, et nous analyserons des exemples de leur utilisation.
1. Bibliothèque marked
Marked est l'une des bibliothèques les plus rapides et les plus légères pour le parsing Markdown. Elle n'a pas de dépendances externes et prend en charge CommonMark et GFM (GitHub Flavored Markdown).
Installation
npm install markedUtilisation de base
const marked = require('marked');
const markdownString = '# TitreCeci est du texte **gras** et *italique*.
- Élément 1- Élément 2';
const html = marked.parse(markdownString);console.log(html);Résultat de l'exécution :
<h1 id="titre">Titre</h1><p>Ceci est du texte <strong>gras</strong> et <em>italique</em>.</p><ul><li>Élément 1</li><li>Élément 2</li></ul>Configuration des options
Marked prend en charge de nombreuses options pour un réglage fin du parsing :
const marked = require('marked');
marked.setOptions({ breaks: true, // sauts de ligne en <br> gfm: true, // prise en charge GFM headerIds: false // désactiver les id des titres});
const html = marked.parse('Ligne 1Ligne 2');console.log(html);// <p>Ligne 1<br>Ligne 2</p>2. Bibliothèque remarkable
Remarkable est une bibliothèque flexible avec prise en charge des plugins et des extensions. Elle permet d'ajouter la syntaxe pour les formules mathématiques, les diagrammes et d'autres éléments spécifiques.
Installation
npm install remarkableExemple d'utilisation
const { Remarkable } = require('remarkable');const md = new Remarkable();
const markdown = '## Sous-titre
`code` et `code en ligne`';const html = md.render(markdown);console.log(html);Sortie :
<h2>Sous-titre</h2><p><code>code</code> et <code>code en ligne</code></p>Plugins et extensions
Remarkable prend en charge les plugins pour le traitement des tableaux, des listes de tâches et d'autres éléments :
const { Remarkable } = require('remarkable');const md = new Remarkable({ html: true, linkify: true});
// Ajout d'un plugin pour les tableauxmd.renderer.rules.table_open = function() { return '<table class="table">';};
const html = md.render('| Colonne 1 | Colonne 2 ||-----------|-----------|| Données 1 | Données 2 |');console.log(html);3. Bibliothèque showdown
Showdown est un port de l'original Showdown pour JavaScript. Il est simple à utiliser et convient bien aux applications client-serveur.
Installation
npm install showdownExemple de code
const showdown = require('showdown');const converter = new showdown.Converter();
const markdown = '**Gras** et *italique*';const html = converter.makeHtml(markdown);console.log(html);// <p><strong>Gras</strong> et <em>italique</em></p>Configuration des extensions
Showdown prend en charge les extensions qui peuvent être ajoutées pour de nouvelles fonctionnalités :
const showdown = require('showdown');
// Création d'une extension pour la coloration syntaxiqueconst myExt = { type: 'output', Aussi dans la bibliothèque
Bibliothèque GraphQL TypeScript : guide complet des outils
Surveillance des applications Swift : bibliothèques et outils pour iOS/macOS
Générateur de QR codes en Go (Golang) avec la bibliothèque go-qrcode
Envoi de SMS en Go (Golang) : API de la bibliothèque golang-sms
Mise en cache dans Node.js : Redis et alternatives pour accélérer les applications