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

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

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

ابدأ الدورة

العمل مع Markdown في C# (.NET): نظرة عامة على المكتبات والأدوات

\n\n

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

\n\n

لماذا تحتاج إلى معالجة Markdown في C#؟

\n\n

تطبيقات الويب الحديثة، وأنظمة إدارة المحتوى (CMS)، ومحررات الأكواد تستخدم بشكل متزايد Markdown كصيغة إدخال أساسية. في C# (.NET)، قد يكون هذا مفيدًا من أجل:

\n
    \n
  • توليد محتوى ثابت (توثيق، مدونات)
  • \n
  • تنفيذ محررات WYSIWYG مع دعم Markdown
  • \n
  • استيراد/تصدير البيانات من أنظمة خارجية (GitHub، Reddit، Stack Overflow)
  • \n
  • تحويل Markdown إلى PDF، DOCX أو LaTeX عبر HTML وسيط
  • \n
\n\n

المكتبات الرئيسية لـ C# (.NET)

\n\n

1. Markdig

\n

Markdig هي المكتبة الأكثر شيوعًا والأعلى أداءً للعمل مع Markdown في .NET. تدعم CommonMark، وGFM (GitHub Flavored Markdown)، والعديد من الإضافات: الجداول، وقوائم المهام، والاستبدال التلقائي للروابط، والصيغ الرياضية (عبر MathJax)، وغيرها الكثير.

\n\n

التثبيت:

\n
// عبر NuGet Package Manager\nInstall-Package Markdig\n\n// أو عبر .NET CLI\ndotnet add package Markdig
\n\n

مثال على الاستخدام:

\n
using Markdig;\n\nstring markdown = @"\n# عنوان المستوى الأول\n\n**نص عريض** و *مائل*.\n\n- عنصر قائمة 1\n- عنصر قائمة 2\n\n> اقتباس\n\n```csharp\nConsole.WriteLine(""Hello, World!"");\n```";\n\n// التحويل إلى HTML مع إضافات GFM\nstring html = Markdown.ToHtml(markdown);\n\nConsole.WriteLine(html);\n
\n\n

الإمكانيات المتقدمة:

\n
// إعداد خط أنابيب مع إضافات إضافية\nvar pipeline = new MarkdownPipelineBuilder()\n    .UseAdvancedExtensions() // يشمل جميع الإضافات الشائعة\n    .UseMathematics()        // دعم صيغ LaTeX\n    .UseEmojiAndSmiley()     // الرموز التعبيرية :smile:\n    .Build();\n\nstring htmlWithExtensions = Markdown.ToHtml(markdown, pipeline);\n
\n\n

2. CommonMark.NET

\n

CommonMark.NET هو تطبيق صارم لمواصفات CommonMark (معيار Markdown). المكتبة خفيفة الوزن، بدون تبعيات، ومثالية للمشاريع التي تتطلب التوافق مع التطبيق المرجعي.

\n\n

التثبيت:

\n
Install-Package CommonMark.NET
\n\n

مثال على الاستخدام:

\n
using CommonMark;\n\nstring markdown = "مرحبًا، **العالم**!";\nstring html = CommonMarkConverter.Convert(markdown);\n\n// النتيجة: <p>مرحبًا، <strong>العالم</strong>!</p>\n
\n\n

3. MarkdownSharp

\n

MarkdownSharp هو منفذ لمعالج Markdown الأصلي إلى C# من Jeff Atwood (المؤسس المشارك لـ Stack Overflow). المكتبة قديمة، ولكنها لا تزال تُستخدم في المشاريع القديمة. تدعم فقط الصيغة الأساسية بدون إضافات.

\n\n
Install-Package MarkdownSharp
\n\n
using MarkdownSharp;\n\nvar markdown = new Markdown();\nstring html = markdown.Transform("**Hello**");\n
\n\n

أدوات إضافية

\n\n

4. HtmlSanitizer (للإخراج الآمن)

\n

عند تحويل Markdown إلى HTML ثم عرضه على صفحة ويب، من المهم تنظيف النتيجة من العلامات التي قد تشكل خطرًا (هجمات XSS). استخدم مكتبة HtmlSanitizer:

\n\n
Install-Package HtmlSanitizer\n\nusing Ganss.XSS;\n\nvar sanitizer = new HtmlSanitizer();\nstring rawHtml = Markdown.ToHtml("<script>alert('xss')</script>");\nstring safeHtml = sanit                    

توصيات