أفضل مسار عمل لدعم BBCode المخصص؟

مرحبًا بالجميع،

نحن بالتأكيد ننظر في استخدام Discourse كبديل لبرنامج المنتدى الخاص بنا لعدة أسباب، لكن أحد الأمور الكبيرة التي يجب أن نحلها هو ما يجب فعله مع كل كود BBCode الذي ندعمه في موقعنا، والذي يمكن رؤيته هنا: Tutorial - RpNation - BBcode Guide | RpNation وهنا: Tutorial - RpNation - BBCode+ Guide | RpNation

بالنظر إلى إضافة vbulletin bbcode كمرجع، لا يبدو أنه سيكون من الصعب إضافة الدعم لما نفعله بالفعل. لدينا جميع أنواع كود BBCode المخصص كما هو موضح في الأدلة، من أشياء بسيطة إلى كود div مخصص يسمح للأشخاص باستخدام HTML إلى حد ما بطريقة آمنة تُنشئ محدد معرف مخصص للمنشور، ولا يمكن للمستخدمين استهداف أي شيء خارج حاوية المنشور.

هذا سمح للأشخاص بإنشاء بعض المنشورات الرائعة حقًا على مر السنين، إليك مثال سريع وجدته بمجرد إلقاء نظرة سريعة:

أعتقد أن سؤالي هو: هل يجب أن نجعل هذا إضافة bbcode، أو نحاول إنشاء طريقة آمنة يمكننا من خلالها الاحتفاظ بمحددات HTML داخل المنشورات كما نفعل مع كود BBCode لدينا ونستكشف هذه الطريقة ونعرضها بدلاً من ذلك؟

رغم أنني أشعر بالرهبة من فكرة السماح للأشخاص باستخدام HTML

نريد الحفاظ على قدرة المستخدمين على تنسيق منشوراتهم مع ضمان بقاء كل شيء آمنًا.

أفهم سبب بحثك عن برنامج جديد، ففتح Tutorial - RpNation - BBcode Guide | RpNation يستغرق مني دقيقتين :scream:

image

أعتقد أنه يمكن تنفيذ جميع أنماطك المخصصة، مثل الصحيفة، والتحديات، والأطراف، باستخدام Generic bbcode wrapper for theme components و CSS.

كثير منها مُدمج في Discourse، مثل تمييز الكود، والترقيم العلوي/السفلي، والمركزية للمقطع، والجداول، والاقتباسات، والإخفاء داخل النص، والفواصل، والعناوين، وتضمين الوسائط، وغيرها.

أوه لا، يبدو ذلك سيئًا جدًا. نحن نستخدم Cloudflare مع خادم AMD Ryzen قوي نسبيًا. يستغرق تحميل جميع الأصول لديّ (دون تسجيل الدخول) حوالي ثانيتين.

نعم، بالتأكيد ننظر في هذا. إذن، في الأساس يمكننا إضافة أي HTML/CSS في مكون سمة ثم استدعاؤه باستخدام وسم BBcode مخصص؟
[blah]المحتوى[/blah]؟

إذن، في هذه الحالة، يمكننا إعادة إنشاء بعض عناصرنا باستخدام:

[wrap=bg bg=blue] أو [wrap=random-name newspaper=1]

ربما يظل من الأفضل استخدام تنسيق يشبه إضافة (Plugin) حتى لا يفقد الكثير من المحتوى تنسيقه. أيضًا، نحتاج إلى إمكانية استخدام عدة وسوم اختيارية.

ربما يمكنك الاطلاع على Discourse BBCode. أعتقد أنه سيكون من السهل نسبيًا إضافة دعم لأكواد أخرى (رغم أنني، بصراحة، واجهت صعوبة في فهم كيفية القيام بذلك…)

لم يكن بإمكانك وضع دليلك بالكامل في منشور واحد وجعله صفحة ويكي عندما شعرت بالرغبة في إضافة المزيد؟ إن وجوده في منشورات متعددة يجعله أصعب بكثير في القراءة والفهم برأيي، ويخلق مساحة مهدرة كثيرة.

يا لها من روعة، أنا أحبها كثيرًا

يرجى ملاحظة أن Discourse يدعم افتراضيًا بعض عناصر HTML المقيدة في أي مكان ضمن محتوى المنشور، وليس فقط داخل غلاف خاص. على سبيل المثال، هذا المنشور محاط بـ <div align=justify>. للأسف، يؤثر ذلك على بعض التنسيق المضمن، مما يفرض استخدام HTML لـ كل شيء في الفقرة.

https://meta.discourse.org/raw/148941/8

دليل bbcode هذا موجود في برنامج منتدى مختلف، لا يدعم منشورات الويكي.

ممتاز. ومع ذلك، أعتقد أننا نفضل الحفاظ عليه بصيغة bbcode التي نضيفها من خلال توسيع تلك الإضافة بدلاً من البحث عن طريقة لمنح الجميع المزيد من HTML الذي يتعين علينا تأمينه.

وجدنا أن إضافة Discourse BBCode الرسمية أصعب في التعديل (بسبب مهاراتنا المحدودة في تطوير إضافات Discourse) مقارنة بهذه الإضافة:

إضافة Awesome BBCodes الرائعة

Awesome BBCodes Plugin: multi-paragraph, nestable, with auto-complete

كانت إضافة “Awesome BBCodes Plugin” سهلة نسبيًا للتفرع (fork) والاستنساخ والتعديل؛ أسهل بكثير من إضافة “Discourse BBCode”.

اقتراحي لأي شخص ( @TheDarkWizard ) يرغب في إنشاء أكواد BBCode مخصصة هو البدء بإضافة “Awesome BBCodes Plugin” ثم التعديل عليها من هناك.

أهلاً، آسفون، نعم، هذا سبب إضافي للهجرة! :slight_smile:

لا مشكلة :slight_smile:

سأقوم بالنظر فيها. شكرًا لك!