Arbeiten mit Markdown in Node.js: Bibliotheken zum Parsen und Konvertieren
\n\nMarkdown 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\n1. Die Bibliothek marked
\n\nmarked 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\nInstallation
\nnpm install marked\n\nGrundlegende Verwendung
\nZur Konvertierung eines Markdown-Strings in HTML genügt der Aufruf der Funktion marked():
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\nErgebnis 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\nOptionen konfigurieren
\nmarked unterstützt zahlreiche Optionen zur Anpassung der Ausgabe:
\nconst 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\nSynchroner und asynchroner Gebrauch
\nStandardmäßig arbeitet marked() synchron, unterstützt aber auch einen asynchronen Modus über Promises:
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\n2. Die Bibliothek showdown
\n\nshowdown 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\nInstallation
\nnpm install showdown\n\nGrundlegende Verwendung
\nErstellen Sie eine Instanz des Konverters und rufen Sie die Methode makeHtml() auf:
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\nErgebnis:
\n<h2>Unterüberschrift</h2>\n<p>Normaler Text mit <strong>Hervorhebung</strong>.</p>\n\nErweiterungen und Anpassung
\nshowdown ermöglicht das Hinzufügen eigener Erweiterungen, z. B. zur Unterstützung von Emojis oder LaTeX-Formeln:
\nconst 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 Auch in der Bibliothek
WebSocket-Bibliotheken in Kotlin für Echtzeitanwendungen in Web-Apps
Crypto-js für JavaScript (Node.js): Vollständige Anleitung mit Beispielen
Prometheus Metriken in Go (Golang): Kompletter Leitfaden für Monitoring
nlohmann/json für C++: vollständige Anleitung mit Beispielen