Markdown-Verarbeitung in Node.js: Bibliotheken marked, showdown und remarkable

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Markdown in Node.js: Bibliotheken zum Parsen und Konvertieren

\n\n

Markdown ist eine leichte Auszeichnungssprache, die häufig zur Textformatierung in Dokumentationen, README-Dateien, Blogs und Content-Management-Systemen verwendet wird. Im Node.js-Ökosystem gibt es mehrere leistungsstarke Bibliotheken, die das Parsen von Markdown und die Umwandlung in HTML sowie die umgekehrte Operation ermöglichen. In diesem Artikel betrachten wir drei der beliebtesten Werkzeuge: marked, showdown und remarkable, ihre Besonderheiten, APIs und Anwendungsbeispiele.

\n\n

1. Die Bibliothek marked

\n\n

marked ist ein schneller und leichter Markdown-Parser, der alle grundlegenden Syntaxelemente unterstützt (Überschriften, Listen, Links, Bilder, Code, Tabellen usw.). Er zeichnet sich durch hohe Leistung und einfache Konfiguration aus.

\n\n

Installation

\n
npm install marked
\n\n

Grundlegende Verwendung

\n

Zur Konvertierung eines Markdown-Strings in HTML genügt der Aufruf der Funktion marked():

\n
const marked = require('marked');\n\nconst markdownText = `\n# Hallo Welt!\n\nDies ist **fetter Text** und *kursiver Text*.\n\n- Listenelement 1\n- Listenelement 2\n\n[Link zu PythonLib](https://pythonlib.ru)\n`;\n\nconst html = marked(markdownText);\nconsole.log(html);\n
\n\n

Ergebnis der Ausführung:

\n
<h1>Hallo Welt!</h1>\n<p>Dies ist <strong>fetter Text</strong> und <em>kursiver Text</em>.</p>\n<ul>\n<li>Listenelement 1</li>\n<li>Listenelement 2</li>\n</ul>\n<p><a href="https://pythonlib.ru">Link zu PythonLib</a></p>
\n\n

Optionen konfigurieren

\n

marked unterstützt zahlreiche Optionen zur Anpassung der Ausgabe:

\n
const marked = require('marked');\n\nmarked.setOptions({\n  breaks: true,       // Zeilenumbrüche in <br> umwandeln\n  gfm: true,          // GitHub Flavored Markdown aktivieren (Tabellen, Durchstreichungen usw.)\n  headerIds: false,   // Keine IDs zu Überschriften hinzufügen\n  mangle: false,      // E-Mail-Adressen nicht maskieren\n  sanitize: false     // HTML-Tags nicht entfernen (gefährlich, mit Vorsicht verwenden)\n});\n\nconst html = marked('Zeile 1\\nZeile 2');\nconsole.log(html); // Gibt mit <br> zwischen den Zeilen aus\n
\n\n

Synchroner und asynchroner Gebrauch

\n

Standardmäßig arbeitet marked() synchron, unterstützt aber auch einen asynchronen Modus über Promises:

\n
const marked = require('marked');\n\nasync function convertMarkdown(text) {\n  const html = await marked.parse(text);\n  return html;\n}\n\nconvertMarkdown('# Überschrift').then(console.log);\n
\n\n

2. Die Bibliothek showdown

\n\n

showdown ist ein weiterer beliebter Markdown-Parser, der sowohl im Browser als auch in Node.js funktioniert. Er bietet eine erweiterbare API und unterstützt zahlreiche Erweiterungen.

\n\n

Installation

\n
npm install showdown
\n\n

Grundlegende Verwendung

\n

Erstellen Sie eine Instanz des Konverters und rufen Sie die Methode makeHtml() auf:

\n
const showdown = require('showdown');\nconst converter = new showdown.Converter();\n\nconst markdownText = '## Unterüberschrift\\n\\nNormaler Text mit **Hervorhebung**.';\nconst html = converter.makeHtml(markdownText);\nconsole.log(html);\n
\n\n

Ergebnis:

\n
<h2>Unterüberschrift</h2>\n<p>Normaler Text mit <strong>Hervorhebung</strong>.</p>
\n\n

Erweiterungen und Anpassung

\n

showdown ermöglicht das Hinzufügen eigener Erweiterungen, z. B. zur Unterstützung von Emojis oder LaTeX-Formeln:

\n
const showdown = require('showdown');\n\n// Erweiterung zum Ersetzen von :smile: durch Emoji erstellen\nconst emojiExtension = function() {\n  return [{\n    type: 'lang',\n    regex: /:smile:/g,\n    replace: '😊'\n  }];\n};\n\n                    

Empfehlungen