العمل مع Markdown في C# (.NET): المكتبات والأمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع Markdown في C# (.NET): أفضل المكتبات وأمثلة الاستخدام



Markdown هي لغة ترميز خفيفة الوزن تسمح بتنسيق النص باستخدام رموز بسيطة. تُستخدم على نطاق واسع لكتابة التوثيق وملفات README والمشاركات في المدونات والرسائل في المنتديات. في النظام البيئي لـ C# (.NET)، توجد عدة مكتبات قوية لتحليل وتحويل وإنشاء Markdown. في هذه المقالة، سنستعرض الأدوات الرئيسية ونوضح كيفية العمل بها.



المكتبات الشائعة للعمل مع Markdown في C#



الحلول الأكثر طلبًا في .NET:



  • Markdig — مكتبة حديثة وسريعة ومتوافقة تمامًا مع مواصفات CommonMark. تدعم الإضافات (الجداول، الشطب، الرموز التعبيرية، الرسوم البيانية وغيرها).
  • MarkdownSharp — محلل خفيف الوزن من Stack Overflow. بسيط، لكنه لا يدعم CommonMark والعديد من الإضافات.
  • CommonMark.NET — التنفيذ الرسمي لمواصفات CommonMark. مناسب تمامًا للتوافق الصارم.


في هذا الدليل، سنركز على Markdig، لأنه المعيار الفعلي لمشاريع .NET الحديثة.



تثبيت Markdig



أضف الحزمة عبر NuGet Package Manager أو .NET CLI:



dotnet add package Markdig


أو عبر Package Manager Console:



Install-Package Markdig


الاستخدام الأساسي: تحويل Markdown إلى HTML



أبسط سيناريو هو تحويل سلسلة Markdown إلى HTML. يقوم Markdig بذلك في سطر واحد:



using Markdig;

string markdown = "# عنوان 1

هذا **نص عريض** و*مائل*.

- عنصر قائمة 1- عنصر قائمة 2";

string html = Markdown.ToHtml(markdown);

Console.WriteLine(html);


النتيجة:



<h1>عنوان 1</h1><p>هذا <strong>نص عريض</strong> و<em>مائل</em>.</p><ul><li>عنصر قائمة 1</li><li>عنصر قائمة 2</li></ul>


العمل مع إضافات Markdig



يدعم Markdig العديد من الإضافات. لاستخدامها، تحتاج إلى إنشاء pipeline:



using Markdig;using Markdig.Extensions.Tables;

var pipeline = new MarkdownPipelineBuilder() .UseAdvancedExtensions() // يشمل جميع الإضافات الأساسية .Build();

string markdown = "| عنوان 1 | عنوان 2 ||-------------|-------------|| خلية 1 | خلية 2 |";

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

Console.WriteLine(html);


سينشئ هذا الكود جدول HTML. يمكنك تفعيل إضافات فردية: .UseTables()، .UseEmojiAndSmiley()، .UseTaskLists() وغيرها.



تحويل HTML مرة أخرى إلى Markdown



التحويل العكسي (HTML → Markdown) غير مضمن في التوزيعة القياسية لـ Markdig، ولكن يمكنك استخدام مكتبة ReverseMarkdown:



dotnet add package ReverseMarkdown


using ReverseMarkdown;

var converter = new Converter();string html = "<h1>مرحبًا، أيها العالم!</h1><p>هذا <strong>مهم</strong></p>";string markdown = converter.Convert(html);

Console.WriteLine(markdown);


العمل مع ملفات Markdown



غالبًا ما يتم تخزين Markdown في ملفات. مثال على القراءة والتحويل:



using Markdig;

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

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


إنشاء HTML موسع باستخدام pipeline مخصص



يمكنك ضبط pipeline بدقة لمهام محددة:



var pipeline = new MarkdownPipelineBuilder()                    

توصيات