Travailler avec Markdown en C# (.NET) : bibliothèques et exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec Markdown en C# (.NET) : meilleures bibliothèques et exemples d'utilisation



Markdown est un langage de balisage léger qui permet de formater du texte à l'aide de symboles simples. Il est largement utilisé pour rédiger de la documentation, des fichiers README, des articles de blog et des messages sur les forums. Dans l'écosystème C# (.NET), il existe plusieurs bibliothèques puissantes pour l'analyse, la conversion et la génération de Markdown. Dans cet article, nous examinerons les principaux outils et montrerons comment les utiliser.



Bibliothèques populaires pour travailler avec Markdown en C#



Les solutions les plus demandées dans .NET :



  • Markdig — une bibliothèque moderne, rapide et entièrement compatible avec la spécification CommonMark. Prend en charge les extensions (tableaux, barré, emoji, diagrammes, etc.).
  • MarkdownSharp — un analyseur léger de Stack Overflow. Simple, mais ne prend pas en charge CommonMark ni de nombreuses extensions.
  • CommonMark.NET — l'implémentation officielle de la spécification CommonMark. Idéal pour une compatibilité stricte.


Dans ce guide, nous nous concentrerons sur Markdig, car il est devenu le standard de facto pour les projets .NET modernes.



Installation de Markdig



Ajoutez le package via NuGet Package Manager ou .NET CLI :



dotnet add package Markdig


Ou via Package Manager Console :



Install-Package Markdig


Utilisation de base : conversion de Markdown en HTML



Le scénario le plus simple consiste à convertir une chaîne Markdown en HTML. Markdig le fait en une seule ligne :



using Markdig;

string markdown = "# Titre 1

Ceci est **du texte en gras** et *en italique*.

- Élément de liste 1- Élément de liste 2";

string html = Markdown.ToHtml(markdown);

Console.WriteLine(html);


Résultat :



<h1>Titre 1</h1><p>Ceci est <strong>du texte en gras</strong> et <em>en italique</em>.</p><ul><li>Élément de liste 1</li><li>Élément de liste 2</li></ul>


Travailler avec les extensions Markdig



Markdig prend en charge de nombreuses extensions. Pour les utiliser, vous devez créer un pipeline :



using Markdig;using Markdig.Extensions.Tables;

var pipeline = new MarkdownPipelineBuilder() .UseAdvancedExtensions() // inclut toutes les extensions principales .Build();

string markdown = "| Titre 1 | Titre 2 ||---------|---------|| Cellule 1 | Cellule 2 |";

string html = Markdown.ToHtml(markdown, pipeline);

Console.WriteLine(html);


Ce code générera un tableau HTML. Vous pouvez activer des extensions individuelles : .UseTables(), .UseEmojiAndSmiley(), .UseTaskLists() et autres.



Conversion de HTML en Markdown



La conversion inverse (HTML → Markdown) n'est pas incluse dans le package standard de Markdig, mais vous pouvez utiliser la bibliothèque ReverseMarkdown :



dotnet add package ReverseMarkdown


using ReverseMarkdown;

var converter = new Converter();string html = "<h1>Bonjour le monde !</h1><p>C'est <strong>important</strong></p>";string markdown = converter.Convert(html);

Console.WriteLine(markdown);


Travailler avec des fichiers Markdown



Souvent, le Markdown est stocké dans des fichiers. Exemple de lecture et de conversion :



using Markdig;

string filePath = "document.md";string markdownContent = File.ReadAllText(filePath);string htmlContent = Markdown.ToHtml(markdownContent);

File.WriteAllText("output.html", htmlContent);


Création de HTML avancé avec un pipeline personnalisé



Vous pouvez affiner le pipeline pour des tâches spécifiques :



var pipeline = new MarkdownPipelineBuilder()                    

Recommendations