معالجة وتحليل Markdown في PHP: المكتبات والأمثلة

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

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

ابدأ الدورة

العمل مع Markdown في PHP: نظرة عامة على المكتبات والأدوات

\n\n

Markdown هي لغة ترميز خفيفة تسمح بإنشاء نص منسق باستخدام بناء جملة بسيط. في PHP، توجد عدة مكتبات ناضجة وموثوقة لمعالجة Markdown. في هذه المقالة، سنستعرض ثلاث أدوات شائعة: Parsedown وPHP-Markdown وLeague/CommonMark.

\n\n

1. Parsedown — محلل خفيف وسريع

\n\n

Parsedown هي واحدة من أشهر المكتبات للعمل مع Markdown في PHP. لا تتطلب تبعيات خارجية، وتدعم جميع عناصر الترميز الأساسية، وتعمل بسرعة كبيرة.

\n\n

التثبيت

\n
composer require erusev/parsedown
\n\n

الاستخدام الأساسي

\n
<?php\nrequire 'vendor/autoload.php';\n\n$Parsedown = new Parsedown();\n\n$markdown = <<<MARKDOWN\n# عنوان المستوى الأول\n\nهذا **نص غامق** و*مائل*.\n\n- عنصر قائمة 1\n- عنصر قائمة 2\n\n[رابط إلى PythonLib](https://pythonlib.ru)\nMARKDOWN;\n\necho $Parsedown->text($markdown);\n?>
\n\n

نتيجة تنفيذ هذا الكود هي HTML صحيح مع عناوين وقوائم وروابط.

\n\n

إمكانيات إضافية

\n
    \n
  • دعم الوضع الآمن (إخفاء وسوم HTML)
  • \n
  • العمل مع القوائم المتداخلة والجداول
  • \n
  • التخصيص عبر الطرق setBreaksEnabled() وsetMarkupEscaped()
  • \n
\n\n

2. PHP-Markdown — الحل الكلاسيكي

\n\n

PHP-Markdown هو التطبيق الأصلي لمحلل Markdown من Michel Fortin، المستند إلى إصدار Perl لجون غروبر. تتبع هذه المكتبة بدقة مواصفات Markdown.

\n\n

التثبيت

\n
composer require michelf/php-markdown
\n\n

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

\n
<?php\nrequire 'vendor/autoload.php';\n\nuse Michelf\\Markdown;\n\n$markdown = <<<MARKDOWN\n## عنوان المستوى الثاني\n\n> هذا اقتباس.\n> يمكن أن يكون متعدد الأسطر.\n\n1. العنصر الأول في القائمة المرقمة\n2. العنصر الثاني\n\n`كود مضمن` وكتلة كود:\n\n    <?php\n    echo "Hello, World!";\n    ?>\nMARKDOWN;\n\n$html = Markdown::defaultTransform($markdown);\necho $html;\n?>
\n\n

الميزات

\n
    \n
  • دعم بناء الجملة الموسع عبر MarkdownExtra
  • \n
  • تحويل تلقائي للروابط وعناوين البريد الإلكتروني
  • \n
  • إمكانية تعطيل HTML في المخرجات
  • \n
\n\n

3. League/CommonMark — تطبيق موحد

\n\n

League/CommonMark هي مكتبة تنفذ المعيار الرسمي CommonMark. تضمن أقصى توافق مع المحللات الأخرى وتدعم الإضافات.

\n\n

التثبيت

\n
composer require league/commonmark
\n\n

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

\n
<?php\nrequire 'vendor/autoload.php';\n\nuse League\\CommonMark\\Environment\\Environment;\nuse League\\CommonMark\\Extension\\CommonMark\\CommonMarkCoreExtension;\nuse League\\CommonMark\\MarkdownConverter;\n\n// إنشاء بيئة مع الإضافات الأساسية\n$environment = new Environment();\n$environment->addExtension(new CommonMarkCoreExtension());\n\n$converter = new MarkdownConverter($environment);\n\n$markdown = <<<MARKDOWN\n| جدول | عمود 1 | عمود 2 |\n|---------|-----------|-----------|\n| صف 1| قيمة  | قيمة  |\n| صف 2| قيمة  | قيمة  |\n\n~~نص مشطوب~~ و==نص مميز== (GFM).\nMARKDOWN;\n\necho $converter->convert($markdown)->getContent();\n?>
\n\n

إضافات إضافية

\n
    \n
  • Table — دعم الجداول
  • \n
  • Strikethrough — نص مشطوب
  • \n
  • TaskList — مربعات الاختيار
  • \n
  • Autolink — روابط تلقائية
  • \n
\n\n

مقارنة المكتبات

\n\n

توصيات