أفضل محلل Markdown في PHP - العرض التوضيحي
تثبيت حزمة الملحن:
composer require erusev/parsedown
أو قم بتنزيل أحدث إصدار وقم بتضمين Parsedown.php
$ Parsedown = new Parsedown ();
echo $ Parsedown -> text ( ' Hello _Parsedown_! ' ); # prints : < p > Hello < em > Parsedown </ em >!</ p >
يمكنك أيضًا تحليل تخفيض السعر المضمّن فقط:
echo $ Parsedown -> line ( ' Hello _Parsedown_! ' ); # prints : Hello < em > Parsedown </ em >!
المزيد من الأمثلة في الويكي وفي هذا الفيديو التعليمي.
Parsedown قادر على الهروب من إدخال المستخدم داخل HTML الذي ينشئه. بالإضافة إلى ذلك، سيطبق Parsedown عملية التطهير على متجهات البرمجة النصية الإضافية (مثل وجهات ارتباط البرمجة النصية) التي يتم تقديمها بواسطة بناء جملة تخفيض السعر نفسه.
لإخبار Parsedown أنه يقوم بمعالجة إدخالات المستخدم غير الموثوق بها، استخدم ما يلي:
$ Parsedown -> setSafeMode ( true );
إذا كنت ترغب بدلاً من ذلك في السماح بـ HTML ضمن مدخلات المستخدم غير الموثوق بها، ولكنك لا تزال ترغب في أن تكون المخرجات خالية من XSS، فمن المستحسن أن تستخدم أداة معالجة HTML التي تسمح بإدراج علامات HTML في القائمة البيضاء، مثل HTML Purifier.
في كلتا الحالتين، يجب عليك التفكير بقوة في استخدام تدابير دفاعية متعمقة، مثل نشر سياسة أمان المحتوى (ميزة أمان المتصفح) بحيث تكون صفحتك على الأرجح آمنة حتى لو وجد المهاجم ثغرة أمنية في إحدى أولى خطوط الدفاع أعلاه.
لا يؤدي الوضع الآمن بالضرورة إلى نتائج آمنة عند استخدام ملحقات Parsedown. ينبغي تقييم الامتدادات من تلقاء نفسها لتحديد مدى سلامتها المحددة ضد XSS.
تحذير: هذه الطريقة ليست آمنة من XSS!
إذا كنت ترغب في الهروب من HTML في الإدخال الموثوق، فيمكنك استخدام ما يلي:
$ Parsedown -> setMarkupEscaped ( true );
احذر من أن هذا لا يزال يسمح للمستخدمين بإدراج متجهات البرمجة النصية غير الآمنة، على سبيل المثال: [xss](javascript:alert%281%29)
.
كيف يعمل تحليل البيانات؟
يحاول قراءة Markdown مثل الإنسان. أولا، ينظر إلى الخطوط. إنه مهتم بكيفية بدء الخطوط. وهذا يساعدها على التعرف على الكتل. فهو يعرف، على سبيل المثال، أنه إذا كان السطر يبدأ بـ -
فربما ينتمي إلى القائمة. بمجرد التعرف على الكتل، فإنه يستمر في المحتوى. أثناء قراءته، فإنه يراقب الأحرف الخاصة. وهذا يساعدها على التعرف على العناصر المضمنة (أو السطور).
نحن نسمي هذا النهج "القائم على الخط". نعتقد أن Parsedown هو أول محلل Markdown يستخدمه. منذ إصدار Parsedown، استخدم المطورون الآخرون نفس الأسلوب لتطوير موزعي Markdown الآخرين في PHP وفي لغات أخرى.
هل هو متوافق مع CommonMark؟
يجتاز معظم اختبارات CommonMark. معظم الاختبارات التي لا تنجح تتعامل مع حالات غير شائعة تمامًا. ومع ذلك، مع نضوج CommonMark، من المفترض أن يتحسن الامتثال.
من يستخدمه؟
Laravel Framework، Bolt CMS، Grav CMS، Herbie CMS، Kirby CMS، October CMS، Pico CMS، Statamic CMS، phpDocumentor، RaspberryPi.org، Symfony Demo والمزيد.
كيف يمكنني المساعدة؟
استخدمه، ضع نجمة عليه، شاركه، وإذا كنت تشعر بالكرم، تبرع.
ماذا يجب أن أعرف؟
لقد قمت أيضًا بإنشاء Nota، وهو تطبيق ملاحظات مصمم لملفات Markdown المحلية.