يبدو أن هناك موضوعًا سابقًا هنا في الميتا كان يساعدك على توجيه كيفية حقن السكربتات، لكنه تم إزالته.
في البداية، لم أكن أعرف أن ماركداون ستزيل المعرفات (id) والفئات (classes) من المنشورات في HTML، وبعد ذلك مباشرةً اكتشفت أن السكربتات يجب تنفيذها بطريقة مختلفة.
أحاول جعل مثال Codepen هذا يعمل داخل موقع Discourse، لكنني غير متأكد من أين أبدأ، حيث أنه لا يعمل بالطريقة المعتادة للنسخ واللصق، وبشكل واضح:
أفهم أنه يمكنني وضع السكربتات فقط من جانب المسؤول، وهو ما فعلته، لكنني أعتقد أن هناك المزيد من العمل اللازم لجعلها تعمل داخل المواضيع.
بشكل أساسي، يتم تشغيل هذه السكربتات الخارجية لحقن محتوى في div يحتوي على سمات بيانات معينة.
هل عليّ إعادة كتابة جميع السكربتات الخارجية باستخدام jQuery و Ember لحقن divs بالمحتوى؟ آمل ألا أحتاج إلى إعادة اختراع العجلة.
لا أفهم هذا الطلب. هل تريد أن يتمكن المستخدمون العاديون من حقن أي كود JavaScript في نظام Discourse الخاص بك، بمجرد نشره في رد؟ سيكون هذا كابوسًا أمنيًا.
المستخدم العادي لن يقوم بإضافة السكريبتات الخارجية، بل سيوفر فقط عناصر div تحتوي على سمات بيانات سيتم إدراجها في القائمة البيضاء لتفعيل السكريبتات الخارجية التي تملأ المحتوى عند العثور على هذه العناصر div.
أليس من المفترض أن تكون عناصر div ذات السمات (وهي HTML أساسية) مدعومة ومقبولة بالفعل في المحررات للمستخدم العادي للنشر؟ أم أنه لأنني مدير يمكنني استخدام HTML الأساسي، بينما لا يستطيع المستخدمون العاديون ذلك؟
مواقع كبيرة أخرى مثل Wowhead وIcy Veins تستخدم هذه السكريبتات لمستخدميها، فهل هم أيضًا معرضون للخطر؟
شكرًا لك، جيف. لقد تمكنت في السابق من إضافة iframes إلى القائمة البيضاء، لكن هذا ليس السلوك الذي أبحث عنه.
مرحبًا راؤول،
أظن أنني لست جيدًا في الشرح. يوجد مثال في هذا المنشور:
في أسفل الرابط المذكور في منشوري، تظهر كلمة “Loading”. هذا عنصر div يحتوي على سمات محددة من المفترض أن يحفز السكربتات الخارجية التي قمت بإضافتها في قسم /body من قالب الإدارة (حيث توضع السكربتات)، ثم يتم ملؤه بالمحتوى (شريط إحصائيات) عبر JavaScript.
في النهاية، يجب أن يبدو الناتج مثل كودبن الذي ربطت به سابقًا في أعلى هذا الموضوع عند توليد البيانات.
سمات البيانات المخصصة مسموح بها افتراضيًا مع Discourse ولا يتم إزالتها من عنصر div مثل السمات id أو class.
مشكلتي هي: كيف يمكنني جعل هذه السكربتات الخارجية تُنفذ وتولّد البيانات داخل هذه العناصر div الفارغة بناءً على السمات؟ بناءً على هذه السمات، قد تختلف من موضوع إلى آخر أو من منشور إلى آخر، مما يحفز السكربت لعرض بيانات مختلفة يتم توليدها بواسطة هذه السكربتات الخارجية.
للتلخيص لما أعتزم فعله
السكربتات الخارجية موضوعة في قسم الإدارة > تخصيص > قالب “تحرير CSS/HTML” :
المخرجات عند العثور على عنصر div وتنفيذ JavaScript الخارجي (السكربتات التي وضعتها في جانب الإدارة) وتحفيزها لتوليد المحتوى بناءً على سمات البيانات تلك: