لماذا يفشل الـ API غالبًا في إنشاء صور مصغرة رغم تحميل صور كبيرة بما يكفي؟
على سبيل المثال، إذا قمت بلصق هذا الرابط في منشور افتتاحي…
يقوم هذا الرابط بتنزيل صورة كبيرة بما يكفي بأبعاد 690 × 465:
ومع ذلك، لم يتم إنشاء صورة مصغرة للموضوع.
لماذا يفشل الـ API غالبًا في إنشاء صور مصغرة رغم تحميل صور كبيرة بما يكفي؟
على سبيل المثال، إذا قمت بلصق هذا الرابط في منشور افتتاحي…
يقوم هذا الرابط بتنزيل صورة كبيرة بما يكفي بأبعاد 690 × 465:
ومع ذلك، لم يتم إنشاء صورة مصغرة للموضوع.
لا يعتمد ذلك على حجم الصورة. بشكل عام، لا نستخدم الصور من الـ oneboxes لأن في كثير من الحالات لا تكون مناسبة للصغائر المصغرة. على سبيل المثال، نرى كثيرًا على Meta روابط مستودعات GitHub مثل
لا أحد يريد أن تُكبّر وجهي وتُستخدم كصورة مصغرة للموضوع ![]()
حسناً، هذا أمر محدد جداً لـ Meta، حيث لا نملك أي روابط لـ Github في مجتمعنا. الأمر كله يتعلق بالأخبار، ويجب استخدام صور onebox. هذا يحدّ من الصور المصغرة بشكل كبير، فقط بسبب مشكلة
أنا بالتأكيد منفتح على التحسينات هنا. أعرف أن @merefield مهتم أيضًا بهذا المنطق. التغيير سيكون مطلوبًا في النواة (core) وليس في إضافة (plugin)، لذا سأفصل هذا في موضوع مستقل.
إليك المنطق الحالي:
ربما يمكننا إضافة فئة .no-thumbnail لأنواع معينة من الـ onebox (مثل GitHub)، ثم نعلم Discourse بتجاهل تلك فقط، مع الحفاظ على صور الـ onebox الأخرى.
سأضع علامة pr-welcome على هذا، لكن تأكد من وضع خطة واضحة في هذا الموضوع قبل البدء بأي عمل جوهري.
سيكون ذلك رائعًا. حاليًا، لا يحصل 90% من مواضيعنا على صور مصغرة رغم إمكانية وجودها. وكما ذُكر، فإن هذه المشكلة على GitHub تمثل حالة حدودية محددة جدًا لمجتمعات المطورين، بينما لا يحصل الغالبية العظمى منا على صور مصغرة للمواضيع التي يمكن بالتأكيد أن تحتوي عليها، بسبب هذه المشكلة.
أؤيد هذا بشدة!!! بالنسبة لحالة الاستخدام الخاصة بجامع الأخبار أو أي صفحة أخرى تعتمد بشكل كبير على إعادة النشر، فإن عدم وجود صور مصغرة ذات صلة هو أمر سيء للغاية.
إذا لم تقوموا بدمج هذه الميزة قريبًا، هل توجد أي أفكار حول كيفية تنفيذ ذلك في توزيعتي المستضافة ذاتيًا؟
نعم، لا يُنظر في هذا الأمر حاليًا نظرًا لأن استخدام “الوجوه” من GitHub قد يُعرض في مجتمعات المطورين مثل Meta، لكن الغالبية العظمى من المجتمعات الأخرى لا تهتم بـ “الوجوه” وتفضل الحصول على أكبر عدد ممكن من الصور المصغرة، خاصة عندما تتوفر صور كبيرة ومناسبة للعرض المباشر (onebox) للموضوع الأصلي.
مثال المنشور الأصلي (OP) يعمل بشكل صحيح في معاينات قائمة المواضيع، لأنني استخدمت معايير أوسع في الإضافة:
def extract_images_for_post
# جميع الصور التي تحتوي على سمة src
@doc.css("img[src]") -
# مطروحًا منها الرموز التعبيرية
@doc.css("img.emoji") -
# مطروحًا منها الصور داخل الاقتباسات
@doc.css(".quote img") -
# مطروحًا منها أيقونات المواقع في الـ onebox
@doc.css("img.site-icon") -
# مطروحًا منها صور الرموز الشخصية في الـ onebox #معايير أوسع من نواة Discourse
end
نعم، شكرًا لك @merefield، لكننا نستخدم فقط مكون السمات الخاص بـ @david، وليس TLP TC. ومع ذلك، سأستخدم تقييمك على الأرجح لتصحيح النواة الأساسية إذا لم يحدث أي تقدم أو إذا لم يقدم الفريق خيارًا بشأن هذه المشكلة.
التصيير أعلاه من TLP TC، ولكن نعم، أستخدم إضافة في الخلفية (الموضوع ‘side car’) لتعديل Ruby :). https://github.com/merefield/discourse-topic-previews/tree/theme_sidecar أقدر أن هذا قد لا يكون خيارًا إذا كان الاستضافة مُدارة.
هذا مطروح تمامًا للنقاش، ولهذا السبب مُوسوم بـ pr-welcome ![]()
راجع هذا المنشور كنقطة انطلاق للتنفيذ.
@merefield هل يمكنك تنفيذ طلب السحب (PR) من فضلك؟ للأسف، أنا جديد تماماً على لغة Ruby. أو كيف تتم عملية طلب السحب؟
@david سأكون سعيدًا جدًا بإزالة هذا التجاوز من الإضافات، وأتفق على أن الحل الأساسي هو الأفضل.
@Terrapop إليك Contributing to Discourse development
كنت سأكون مساعدًا أكثر فورية في هذا الأمر، لكنني مشغول حاليًا بأعمال العملاء.
تم الفهم. لدي حاليًا بيئة تطوير بسيطة باستخدام Docker لتطوير بعض الإضافات البسيطة وإصلاحات النواة الأساسية. سأنتظر حتى يتولى شخص ما النظر في هذا الأمر، وربما يتم التصحيح من خلال تقييمك في هذه الأثناء.
العمل المناسب هنا ليس مشروعًا غير ملموس، لأنك بحاجة إلى تعديل حالات الاختبار والعمل عبر المكونين (discourse و discourse one-box). لكنه بالتأكيد يستحق القيام به!
بالتالي، لا داعي للخوف من Ruby بعد Ember ![]()
نعم، لكن هذا بالتأكيد خارج نطاق قدراتي الحالية للأسف.
كحل بديل، غالبًا ما أقوم بنسخ الصورة ولصقها يدويًا في محادثة، ثم أختار الصورة المصغرة من هناك.
سيكون التلقائي أفضل، ربما مع عنصر تكوين لتحديد النطاقات التي لا يجب أخذ الصور المصغرة منها من صناديق واحدة (أي لتغطية حالة GitHub).
أتفق. استخدمنا مقتطف @merefield لتجاوز النواة باستخدام إضافة مصغرة. لكن يجب أن يكون من السهل على فريق النواة تقديم شيء جاهز من الصندوق. عدم توفير هذا لمجرد أن البعض يخشى ظهور وجوههم على GitHub هو مجرد كسل.
لقد دمّرت للتو FEATURE: Allow onebox images to be used as topic thumbnails (#12050) · discourse/discourse@b770c30 · GitHub والذي يسمح باختيار صور onebox كصور مصغرة للمواضيع. هناك استثناء محدد لـ onebox الخاص بـ GitHub، ويمكننا إضافة المزيد حسب الحاجة.
(تم ذكر @Terrapop @merefield)