league/commonmark هو محلل PHP Markdown عالي التوسع تم إنشاؤه بواسطة Colin O'Dell والذي يدعم مواصفات CommonMark الكاملة وGitHub-Flavored Markdown. يعتمد ذلك على التنفيذ المرجعي لـ CommonMark JS بواسطة John MacFarlane (@jgm).
يتطلب هذا المشروع PHP 7.4 أو أعلى مع ملحق mbstring
. لتثبيته عبر Composer، قم ببساطة بتشغيل:
$ الملحن يتطلب الدوري/العلامة المشتركة
توفر فئة CommonMarkConverter
غلافًا بسيطًا لتحويل CommonMark إلى HTML:
استخدم LeagueCommonMarkCommonMarkConverter;$converter = new CommonMarkConverter(['html_input' => 'strip','allow_unsafe_links' => false، ]);echo $converter->convert('# أهلا بالعالم!');// <h1>أهلا بالعالم!</h1>
أو إذا كنت تريد GitHub-Flavored Markdown، استخدم فئة GithubFlavoredMarkdownConverter
بدلاً من ذلك:
استخدم LeagueCommonMarkGithubFlavoredMarkdownConverter;$converter = new GithubFlavoredMarkdownConverter(['html_input' => 'strip','allow_unsafe_links' => false، ]);echo $converter->convert('# أهلا بالعالم!');// <h1>أهلا بالعالم!</h1>
يرجى ملاحظة أنه يتم دعم ترميز UTF-8 وASCII فقط. إذا كان Markdown الخاص بك يستخدم ترميزًا مختلفًا، فيرجى تحويله إلى UTF-8 قبل تشغيله عبر هذه المكتبة.
حذر
إذا كنت ستقوم بتحليل مدخلات غير موثوقة من المستخدمين، فيرجى مراعاة تعيين خيارات html_input
و allow_unsafe_links
وفقًا للمثال أعلاه. راجع https://commonmark.thephpleague.com/security/ لمزيد من التفاصيل. إذا اخترت أيضًا السماح بإدخال HTML الأولي من مستخدمين غير موثوقين، ففكر في استخدام مكتبة (مثل HTML Purifier) لتوفير تصفية إضافية لـ HTML.
يمكن العثور على الوثائق الكاملة حول الاستخدام المتقدم والتكوين والتخصيص على الموقع commonmark.thephpleague.com.
يمكن العثور على معلومات حول كيفية الترقية إلى الإصدارات الأحدث من هذه المكتبة على https://commonmark.thephpleague.com/releases.
إن GithubFlavoredMarkdownConverter
الموضح سابقًا هو بديل مباشر لـ CommonMarkConverter
الذي يضيف ميزات إضافية موجودة في مواصفات GFM:
الروابط التلقائية
HTML الخام غير مسموح به
يتوسطه خط
الجداول
قوائم المهام
راجع وثائق الإضافات للحصول على مزيد من التفاصيل حول كيفية تضمين بعض ميزات GFM فقط إذا كنت لا تريدها كلها.
كيك بي اتش بي 3
دروبال
لارافيل 4+
سكالبين
سيمفوني 2 و 3
سيمفوني 4
ملحق غصين تخفيض السعر
مرشح غصين والعلامة
مدونة لارافيل كومونمارك
راجع وثائق الإضافات الخاصة بنا للحصول على قائمة كاملة بالملحقات المجمعة مع هذه المكتبة.
يمكن تجميع المحللين/العارضين المخصصين في ملحقات تعمل على توسيع CommonMark. فيما يلي بعض الأشياء التي قد تجدها مثيرة للاهتمام:
ملحق الرموز التعبيرية - ملحق الرموز التعبيرية UTF-8 مع علامة Github.
ملحقات Sup Sub - تضيف دعمًا للخط المرتفع والمنخفض (علامات HTML <sup>
و <sub>
>)
ملحق YouTube iframe - يستبدل رابط youtube بـ iframe.
ملحق Lazy Image - يضيف خيارات متنوعة للتحميل البطيء للصور.
ملحق العلامة - يضيف دعمًا للنص المميز (علامة HTML <mark>
)
يمكن العثور على برامج أخرى على Packagist ضمن نوع الحزمة commonmark-extension
.
إذا قمت ببناء منتجك الخاص، فلا تتردد في إرسال تقرير العلاقات العامة لإضافته إلى هذه القائمة!
تحقق من الأشياء الرائعة الأخرى التي يفعلها الأشخاص باستخدام league/commonmark
: https://packagist.org/packages/league/commonmark/dependents
تتم متابعة SemVer عن كثب. يجب ألا تقدم الإصدارات الثانوية والتصحيحية تغييرات جذرية على قاعدة التعليمات البرمجية؛ ومع ذلك، فقد يغيرون مخرجات AST أو HTML الناتجة لـ Markdown الذي تم تحليله (بسبب إصلاحات الأخطاء وتغييرات المواصفات وما إلى ذلك). ونتيجة لذلك، قد تحصل على HTML مختلف قليلاً، ولكن أي تعليمات برمجية مخصصة مدمجة في هذه المكتبة يجب أن تظل تعمل بشكل صحيح.
أي فئات أو أساليب تحمل علامة @internal
ليست مخصصة للاستخدام خارج هذه المكتبة وتخضع لتغييرات جذرية في أي وقت، لذا يرجى تجنب استخدامها.
عند إصدار إصدار ثانوي جديد (على سبيل المثال 2.0
-> 2.1
)، سيستمر الإصدار السابق ( 2.0
) في تلقي إصلاحات الأخطاء الأمنية والحرجة لمدة 3 أشهر على الأقل .
عندما يتم إصدار إصدار رئيسي جديد (على سبيل المثال 1.6
-> 2.0
)، سيتلقى الإصدار السابق ( 1.6
) إصلاحات أخطاء حرجة لمدة 3 أشهر على الأقل وتحديثات أمنية لمدة 6 أشهر بعد صدور هذا الإصدار الجديد.
(قد تتغير هذه السياسة في المستقبل ويمكن إجراء استثناءات على أساس كل حالة على حدة.)
يتوفر الدعم الاحترافي، بما في ذلك الإخطار بالإصدارات الجديدة والتحديثات الأمنية، من خلال اشتراك Tidelift.
للإبلاغ عن ثغرة أمنية، يرجى استخدام جهة الاتصال الأمنية Tidelift. ستقوم Tidelift بتنسيق الإصلاح والكشف معنا.
إذا واجهت خطأ في المواصفات، يرجى الإبلاغ عنه إلى مشروع CommonMark. سيتم في النهاية تنفيذ أي إصلاح ناتج في هذا المشروع أيضًا.
نرحب بالمساهمات في هذه المكتبة، وخاصة تلك التي:
تحسين سهولة الاستخدام أو المرونة دون المساس بقدرتنا على الالتزام بمواصفات CommonMark
إصلاحات المرآة التي تم إجراؤها على التنفيذ المرجعي
تحسين الأداء
إصلاح المشكلات المتعلقة بالالتزام بمواصفات CommonMark
يجب تجنب إعادة الهيكلة الرئيسية لمنطق التحليل الأساسي إن أمكن حتى نتمكن بسهولة من متابعة التحديثات التي تم إجراؤها على التنفيذ المرجعي. ومع ذلك، سنأخذ بعين الاعتبار تمامًا التغييرات التي لا تنحرف كثيرًا عن المواصفات المرجعية أو التي تفضلها تطبيقات CommonMark الشائعة الأخرى.
يرجى الاطلاع على المساهمة للحصول على تفاصيل إضافية.
اختبار الملحن $
سيؤدي هذا أيضًا إلى اختبار الدوري/العلامة المشتركة مقابل أحدث المواصفات المدعومة.
يمكنك مقارنة أداء الدوري/العلامة المشتركة مع المحللين المشهورين الآخرين عن طريق تشغيل أداة قياس الأداء المضمنة:
$ ./tests/benchmark/benchmark.php
كان هذا الكود يعتمد في الأصل على التطبيق المرجعي CommonMark JS الذي تمت كتابته وصيانته وحقوق الطبع والنشر بواسطة John MacFarlane. هذا المشروع ببساطة لم يكن ليوجد لولا عمله.
وشكرًا جزيلا لجميع المساهمين الرائعين لدينا:
نود أيضًا أن نعرب عن خالص شكرنا للرعاة التاليين الذين يدعمون التطوير المستمر لهذا المشروع:
Tidelift لتقديم الدعم لكل من المشرفين والمستخدمين النهائيين من خلال برنامج الدعم الاحترافي الخاص بهم
Blackfire لتوفير اشتراك مفتوح المصدر في ملفات التعريف
JetBrains لدعم هذا المشروع بتراخيص PhpStorm المجانية
هل أنت مهتم برعاية تطوير هذا المشروع؟ راجع https://www.colinodell.com/sponsor للحصول على قائمة بطرق المساهمة.
league/commonmark مرخصة بموجب ترخيص BSD-3. راجع ملف LICENSE
لمزيد من التفاصيل.
تتم صيانة هذا المشروع بشكل أساسي بواسطة Colin O'Dell. قد يساعد أعضاء فريق قيادة PHP League أحيانًا في بعض هذه الواجبات.
يتم استخدام هذا المشروع بواسطة Drupal وLaravel Framework وCachet وFirefly III وNeos وDaux.io والمزيد!
احصل على دعم احترافي للدوري/العلامة المشتركة من خلال اشتراك Tidelift
يساعد Tidelift على جعل المصادر المفتوحة مستدامة للمشرفين مع منح الشركات
ضمانات حول الأمن والصيانة والترخيص لتبعياتهم.