Arbeiten mit Markdown in C# (.NET): die besten Bibliotheken und Anwendungsbeispiele
Markdown ist eine leichtgewichtige Auszeichnungssprache, die es ermöglicht, Text mit einfachen Zeichen zu formatieren. Sie wird häufig zum Schreiben von Dokumentationen, README-Dateien, Blogbeiträgen und Forumsnachrichten verwendet. Im C# (.NET)-Ökosystem gibt es mehrere leistungsstarke Bibliotheken zum Parsen, Konvertieren und Generieren von Markdown. In diesem Artikel betrachten wir die wichtigsten Werkzeuge und zeigen, wie man mit ihnen arbeitet.
Beliebte Bibliotheken für die Arbeit mit Markdown in C#
Die gefragtesten Lösungen in .NET:
- Markdig — eine moderne, schnelle und vollständig mit der CommonMark-Spezifikation kompatible Bibliothek. Unterstützt Erweiterungen (Tabellen, Durchstreichungen, Emojis, Diagramme usw.).
- MarkdownSharp — ein leichter Parser von Stack Overflow. Einfach, unterstützt aber kein CommonMark und viele Erweiterungen nicht.
- CommonMark.NET — die offizielle Implementierung der CommonMark-Spezifikation. Gut geeignet für strikte Kompatibilität.
In dieser Anleitung konzentrieren wir uns auf Markdig, da es der De-facto-Standard für moderne .NET-Projekte ist.
Installation von Markdig
Fügen Sie das Paket über den NuGet Package Manager oder die .NET CLI hinzu:
dotnet add package MarkdigOder über die Package Manager Console:
Install-Package MarkdigGrundlegende Verwendung: Konvertierung von Markdown in HTML
Das einfachste Szenario ist die Umwandlung eines Markdown-Strings in HTML. Markdig erledigt dies in einer Zeile:
using Markdig;
string markdown = "# Überschrift 1
Dies ist **fetter Text** und *kursiv*.
- Listenelement 1- Listenelement 2";
string html = Markdown.ToHtml(markdown);
Console.WriteLine(html);Ergebnis:
<h1>Überschrift 1</h1><p>Dies ist <strong>fetter Text</strong> und <em>kursiv</em>.</p><ul><li>Listenelement 1</li><li>Listenelement 2</li></ul>Arbeiten mit Markdig-Erweiterungen
Markdig unterstützt zahlreiche Erweiterungen. Um diese zu nutzen, müssen Sie eine Pipeline erstellen:
using Markdig;using Markdig.Extensions.Tables;
var pipeline = new MarkdownPipelineBuilder() .UseAdvancedExtensions() // aktiviert alle grundlegenden Erweiterungen .Build();
string markdown = "| Überschrift 1 | Überschrift 2 ||-------------|-------------|| Zelle 1 | Zelle 2 |";
string html = Markdown.ToHtml(markdown, pipeline);
Console.WriteLine(html);Dieser Code generiert eine HTML-Tabelle. Sie können einzelne Erweiterungen hinzufügen: .UseTables(), .UseEmojiAndSmiley(), .UseTaskLists() und andere.
Konvertierung von HTML zurück in Markdown
Die Rückkonvertierung (HTML → Markdown) ist nicht im Standardumfang von Markdig enthalten, aber Sie können die Bibliothek ReverseMarkdown verwenden:
dotnet add package ReverseMarkdownusing ReverseMarkdown;
var converter = new Converter();string html = "<h1>Hallo, Welt!</h1><p>Das ist <strong>wichtig</strong></p>";string markdown = converter.Convert(html);
Console.WriteLine(markdown);Arbeiten mit Markdown-Dateien
Oft wird Markdown in Dateien gespeichert. Beispiel für das Lesen und Konvertieren:
using Markdig;
string filePath = "document.md";string markdownContent = File.ReadAllText(filePath);string htmlContent = Markdown.ToHtml(markdownContent);
File.WriteAllText("output.html", htmlContent);Erstellung von erweitertem HTML mit einer benutzerdefinierten Pipeline
Sie können die Pipeline für spezifische Anforderungen feinabstimmen:
var pipeline = new MarkdownPipelineBuilder() Auch in der Bibliothek
OAuth-Client für Swift (iOS/macOS): Vollständige Anleitung
Maschinelles Lernen mit C#: Bibliotheken ML.NET und Accord.NET
JSON-Verarbeitung in C# (.NET): Vollständige Anleitung mit Beispielen
Internationalisierung (i18n) in Go (Golang): Vollständiger Leitfaden