تقديم شبكة الصور في المشاركات

إذا كان لديك العديد من الصور في منشور Discourse، يمكنك الآن ترتيبها تلقائيًا في شبكة جميلة. كل ما عليك فعله هو وضعها بين علامتي [grid] ... [/grid]، وسيتم ترتيب الصور بدقة. هذه ميزة أساسية اعتبارًا من هذا الالتزام، وهي ممكّنة على جميع مثيلات Discourse.

إليك مثال عملي:

هذه الميزة مشابهة لبعض مكونات الثيم (Masonry Image Gallery, Tiles Image Gallery). الاختلاف الرئيسي هو أن ترتيب الصور في الشبكة سيتم بمحاذاة في أعلى وأسفل العنصر. بعض الملاحظات الفنية الإضافية:

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

يمكن أيضًا تمكين أو تعطيل الشبكة عن طريق النقر على أيقونة تبديل صغيرة بجوار الصورة الأولى في مجموعة من الصور في معاينة المنشئ:

الصور المستخدمة في هذا المنشور من unsplash.com

81 إعجابًا

رائع جداً. أحب هذا. شكراً لك @pmusaraj :slight_smile:

6 إعجابات

هل هذه الميزة الجديدة متوافقة مع معرض صور Masonry الذي نستخدمه بالفعل، أم ستختفي الشبكات الحالية؟

6 إعجابات

سؤال جيد. هذه الميزة الأساسية الجديدة غير متوافقة مع مكون سمة معرض صور Masonry، أي لا يمكن لكليهما العمل في نفس الوقت.

إذا كنت ترغب في ترحيل المشاركات من نهج معرض Masonry إلى النهج الأساسي الجديد، فأنت بحاجة إلى تشغيل نص برمجي يقوم بتحديث محتويات raw للمشاركات من

<div>

![example|690x395](upload://d48GblQ7LzoqPax2TN8xyuWhzyJ.png)
![example2|690x413](upload://usFTgK3JCDlQXDaiIcAy9ZUSyt9.png)

</div>

إلى

[grid]
![example|690x395](upload://d48GblQ7LzoqPax2TN8xyuWhzyJ.png)
![example2|690x413](upload://usFTgK3JCDlQXDaiIcAy9ZUSyt9.png)
[/grid]

ثم إعادة خبز تلك المشاركات.

6 إعجابات

جميل! هذه خطوة كبيرة للأمام، مما يجعل الصور تبدو أجمل في المنشورات.
أفترض أن هذا لا يؤثر بأي شكل من الأشكال على ما يتم اختياره كصورة أساسية للمصغرات؟

6 إعجابات

صحيح، لا ينبغي أن يؤثر ذلك. أعتقد أنه يتم اختيار الصورة الأولى الموجودة في المنشور كصورة مصغرة (باستثناء الصور الرمزية والرموز التعبيرية وما شابه ذلك). أيضًا، لا يمكنني رؤية سيناريو لا تكون فيه الصورة الأولى التي تم تحميلها هي الصورة الأولى في الشبكة (يمكن أن يحدث إعادة الترتيب فقط للصور اللاحقة في القائمة).

6 إعجابات

لدي استيراد حيث الصور هي مجرد عناوين URL لمخزن S3 مثل:

[grid]

https://urlsite/pic.jpg

https://urlsite/pic.jpg

[/grid]

لكنها تظهر فقط [grid] ثم الصور ثم [/grid].

أفترض أنها تعمل فقط بعد تنزيل عناوين URL هذه وتحويلها إلى صور عادية؟

7 إعجابات

حسنًا، في المُنشئ، يعمل هذا حاليًا مع التحميلات فقط أيضًا. (أي أن لصق عنوان URL لصورة ولفه بعلامات [grid] لا يعمل في المُنشئ أيضًا.)

8 إعجابات

رائع. من الجيد أنني لم أضف هذا الرمز إلى البرنامج النصي للاستيراد بعد. :slight_smile:

5 إعجابات

هذه ميزة رائعة، شكراً لك.

هل ستعمل الشبكة مع الصفحات المنشورة؟

إعجاب واحد (1)

للأسف، لا، هذا لا يعمل مع الصفحات المنشورة. ميزات ما بعد الكتابة المشابهة التي تعمل بالـ Javascript لا تعمل أيضًا مع الصفحات المنشورة (الصناديق المضيئة، الاستطلاعات، جدول المحتويات).

3 إعجابات

هل يمكنك تقديم تعليمات لهذا؟

إعجاب واحد (1)

مرحباً بارت :wave:

يجب أن يعمل هذا. بالطبع، قم بعمل نسخة احتياطية وابحث بعناية عن أي نتائج غير مرغوب فيها في منشورات المِصْطَبَة السابقة… :slight_smile:

posts = Post.where('raw LIKE ?', '%<div>data-masonry-gallery>%')

posts.each do |p|
    p.update!(raw: p.raw.gsub(/<div>data-masonry-gallery>(.*?)<\/div>/m, '[grid]\1[/grid]'))
    p.rebake!
end
7 إعجابات

شكراً لك، هذا يبدو رائعاً :slightly_smiling_face:

أنا أيضاً أستخدم المكون Masonry Image Gallery

Screenshot 2023-06-22 at 10.38.14

مع تفعيل الإعداد التلقائي… هذا لا يحتوي على <div> data-masonry-gallery</div> في الوضع الخام، لذا أعتقد أن النص البرمجي لن يعمل. ولكن في هذه الحالة، لا يوجد تعارض بينهما.


هل هناك أي خطط لجعل الشبكات تلقائية؟ إذا حدث هذا، يمكنني ببساطة إعادة خبز المشاركات والحفاظ على تخطيط الشبكة. حتى ذلك الحين، أعتقد أنه يمكنني إخفاء زر الشبكة واستخدام مكون السمة بأمان.

4 إعجابات

هل لدى أي شخص في CDCK تأثير على مطوري Chrome؟ دعم CSS Masonry لـ Grid؟

يجب أن يكون Masonry شيئًا خاصًا بـ CSS بالفعل. إنه أحد التصميمات القليلة التي تتيح لك احترام نسب العرض إلى الارتفاع المختلفة لمجموعات الصور (أو أي محتوى عنصر آخر) بطريقة لطيفة.

من المهدر وغير المجدي تشغيل هذا باستخدام JavaScript في كل مكان …

(وكما تعلمون، أصبح هذا ممكنًا بالفعل في Firefox (خلف علامة) وهو موجود الآن في الإصدار التجريبي الفني لـ Safari: "masonry" | Can I use... Support tables for HTML5, CSS3, etc)

بالمناسبة، أيها الجميع، يرجى :star: هذه المشكلة:

https://bugs.chromium.org/p/chromium/issues/detail?id=1076027&q=masonry&can=2

:drum: دعم CSS Masonry الآن لـ Chrome و Edge! :drum:

4 إعجابات

لا أعرف.

أنا متحمس لدعم Safari للـ masonry، لديهم سجل أفضل في نقل الميزات من المسودة – تجريبي – مدعوم بالكامل. دعم Firefox masonry كان خلف علامة لمدة تزيد عن عامين الآن. من المحتمل أن يكون دعم Safari هو المحرك الرئيسي لـ Chrome لمواكبة ذلك.

تم!

4 إعجابات

نعم، ولكن ليس بدون علامات [grid]. تحويل الصور تلقائيًا إلى شبكة بدون علامات سينتهك مواصفات CommonMark، ونحن نفضل بشدة تجنب ذلك. (في مسودتي الأولى الداخلية لهذه الميزة، بدأت بشبكة تلقائية.)

بدلاً من ذلك، ما أفكر فيه كخطوة تالية هنا هو أنه يمكننا إضافة أغلفة [grid] تلقائيًا لتحميلات الصور المتعددة، ربما 3+ تحميلات. سيكون هذا مفيدًا بشكل خاص لتحميلات الهاتف المحمول، حيث أن إضافة العلامات يدويًا على الهاتف المحمول أمر صعب، ومن المحتمل أنك إذا كنت تقوم بتحميل 3+ صور في وقت واحد من هاتفك، فهي صور ومرشحات معقولة لتخطيط الشبكة.

ليس لدينا أي خطط حتى الآن لموعد إضافة هذا، ولكنه بالتأكيد شيء نود القيام به.

9 إعجابات

يجب أن يكون من الممكن مع ذلك إنشاء HTML الثابت من JavaScript ونشر DOM “المطهو” لتمكين عدد من الميزات المفيدة مثل هذه الشبكة وجدول المحتويات

إعجاب واحد (1)

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

إعجابَين (2)

لقد جربت هذا بالأمس وتم ترشيحي لتقديم ملاحظاتي وأفكاري هنا في هذا الموضوع…

  • أعجبني أنه “سحري تلقائي” بمعنى أنه يضبط شبكة بنفسه
  • قد تكون ميزة إضافية لطيفة لترتيب الصور دون الحاجة إلى نسخ/لصق الصور حول القائمة - ربما فقط إضافة أرقام في بداية كل صورة؟
  • أعجبني أنه يمكنك بسهولة تبديل الشبكة في المعاينة، ولكن لإعادتها، تحتاج إلى إعادة إضافة الرمز، ويبدو أن هذا مجال لتحسين التجربة بحيث يظهر رمز الشبكة عندما تضيف أكثر من صورة واحدة لتمكين التبديل تشغيل/إيقاف حسب الحاجة.
  • ميزة مستقبلية محتملة أخيرة ستكون القدرة على اختيار صورة معينة “لتسليط الضوء عليها” أو تمييزها ضمن الشبكة بحيث تظهر أكبر من غيرها أو تبرز بطريقة ما.

بشكل عام، خيار رائع جديد لإضافة صور متعددة دون أن تطغى الصور على المنشور :slight_smile:

5 إعجابات