Arbeiten mit Markdown in C# (.NET): Bibliotheken und Beispiele

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 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 Markdig


Oder über die Package Manager Console:



Install-Package Markdig


Grundlegende 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 ReverseMarkdown


using 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()                    

Empfehlungen