يشرح هذا الدليل كيفية تكوين oneboxes في Discourse واستكشاف أخطائها وإصلاحها. ويغطي إعدادات المسؤول، وكيفية عمل oneboxes، وخطوات حل المشكلات الشائعة.
مستوى المستخدم المطلوب: مسؤول
تعد Oneboxes (معاينات الروابط الغنية) التي يمكن للمستخدمين إنشاؤها في منشوراتهم. في حين يمكن للمستخدمين إنشاء هذه المعاينات بسهولة، يمتلك مسؤولو الموقع ضوابط إضافية وقد يحتاجون إلى استكشاف الأخطاء وإصلاحها عندما لا تتم معاينة الروابط كما هو متوقع.
إعداد المسؤول
لإدارة إعدادات onebox:
- انتقل إلى لوحة المسؤول (Admin panel)
- انتقل إلى قسم إعدادات الموقع (site settings)
- ابحث عن “onebox”
سترى قائمة بالإعدادات المتعلقة بـ onebox:
تتضمن بعض الإعدادات البارزة ما يلي:
post onebox maxlength: يتحكم في مقدار النص المتضمن في oneboxenable inline onebox on all domains: يمكّن oneboxes المضمنة، ويحول عناوين URL العادية إلى عناوين مرتبطة (على سبيل المثال،https://en.wikipedia.org/wiki/Fun_(band)يصبح “Fun (band) - Wikipedia”)blocked onebox domains: يسمح لك بتعطيل oneboxes لنطاقات محددة
كيف تعمل Oneboxes
عندما يتم تضمين رابط في منشور، يزور Discourse صفحة الوجهة ويبحث عن علامات Open Graph أو oEmbed، بما في ذلك:
- عنوان الموقع
- العنوان
- الصورة المميزة
- أيقونة الموقع (أو favicon)
- الوصف (إلزامي)
- سعر المنتج (إذا كان ذا صلة)
يتطلب Discourse وجود علامة الوصف واحتوائها على نص كافٍ لتلخيص الصفحة. بدون هذا، لن يتم عرض الرابط الهدف كـ onebox.
إليك مثال onebox لـ https://discourse.org/ يعرض عنوان الموقع والصورة المميزة والأيقونة والوصف:
استكشاف الأخطاء وإصلاحها
إذا لم تعمل oneboxes كما هو متوقع، جرب هذه الخطوات:
-
اختبر الموقع باستخدام iFramely:
- الصق الرابط وتحقق مما إذا كان يستخدم علامات OpenGraph أو oEmbed الوصفية الصحيحة
- تأكد من وجود نص الوصف وأنه كافٍ
-
تحقق مما إذا كان طلب onebox محظورًا:
- قد تحظر بعض المضيفات وكلاء المستخدم “غير المعروفين”
- تحقق من أن موقع الويب المستهدف لا يحظر وكيل مستخدم Discourse
-
بالنسبة للروابط الداخلية التي لا تظهر كـ oneboxes:
- تأكد من أن الرابط ليس في فئة آمنة
- يتم عرض الروابط الداخلية كـ oneboxes فقط في الفئات العامة أو ضمن نفس الفئة لأسباب أمنية
من وحدة تحكم rails، يمكنك إبطال/جلب oneboxes صراحةً عن طريق استدعاء الأساليب أثناء الاختبار عن طريق القيام بما يلي:
[1] pry(main)=> Oneboxer.invalidate(url)
=> 0
[2] pry(main)=> Oneboxer.onebox(url)
=> "…(elided) <aside class=\"onebox"
[3] pry(main)=> InlineOneboxer.invalidate(url)
=> 0
[4] pry(main)=> InlineOneboxer.onebox(url)
=> "…(elided) <aside class=\"onebox"
