مشكلة في عرض Markdown مع صورة محاطة بـ HTML

نعم، إذا اتجهت بالكامل في هذا الاتجاه، فستضطر إلى التنازل عن عدم القدرة على تحرير المحتوى في Discourse مقابل الحفاظ على سلامة HTML الكاملة.

كنت أفكر في أنه قد يكون هناك حل وسط حيث تطبق هذا النهج فقط على وسوم img في منشورات HTML المستوردة.

لكنني الآن أراجع نفسي. إن القيام بذلك بشكل انتقائي سيتطلب تغييرات في العديد من أجزاء معالجة المنشورات.

إعجابَين (2)

نعم، أعتقد أن هذا هو الخيار الأفضل على الأرجح. لقد بدأت العمل عليه في يونيو 2020، لكنه انتهى به الأمر ليكون شاقًا للغاية، واضطررت للانتقال إلى مشاريع أخرى. كان لدي نهجان للسماح بعناوين upload:// في وسوم <img… ولا يعتبر أي منهما مثاليًا. من ملاحظاتي:


التنفيذ 1:

في خط أنابيب الماركداون، قم بتحليل محتوى كل html_block (من خلال إساءة استخدام مكتبة xss.js قليلاً)، ومعالجة أي وسوم صور تحتوي على سمات src من نوع upload://.

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

العيوب: نوعًا ما إساءة استخدام أداة التنظيف xss.js. قد لا يكون محلل HTML5 مثاليًا.

يمكن تحسين هذا الخيار باستخدام تطبيق DOM جافا سكريبت متوافق مع المعايير (مثل jsdom) على الخادم، لكن يبدو ذلك ثقيلًا جدًا.

التنفيذ 2:

السماح لجميع سمات src من نوع upload:// بالمرور عبر خط أنابيب الماركداون بالكامل، ثم استبدالها لاحقًا. على جانب العميل، هذا في الواقع بسيط جدًا - كنا نستبدل عناوين upload:// بشكل غير متزامن بالفعل بعد الطهي. أما على جانب الخادم، فإن هذا يتطلب خطوة معالجة إضافية باستخدام Nokogiri.

المزايا: المحلل متوافق مع معايير HTML5.

العيوب: تنفيذ مختلف على جانب العميل/الخادم، مما يجعل خط الأنابيب أكثر تعقيدًا قليلاً.


أعتقد أن الخيار 2 هو المسار الصحيح على الأرجح. سنحتاج بعد ذلك إلى تحديث وظيفة pull_hotlinked_images للحفاظ على وسوم <img دون استبدالها بتنسيق الماركداون. آمل أن أتمكن من العثور على وقت للعودة إلى هذا قريبًا :crossed_fingers:

4 إعجابات

أنا حقًا لا أفهم هذا التعقيد. من الواضح أن وسم الصورة HTML يُستبدل بوسم Markdown – على سبيل المثال: ![](upload://6zqK52dO23i1JsYH2oyMU12U2ro.jpeg). لماذا لا نضيف ببسط سطرين جديدين قبل !؟ هذا سيضمن عرضها بشكل صحيح، ويسمح لميزة رفع الصور بالعمل، مما يمنع ظهور صور مكسورة ومشاكل المواقع المتعددة.

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

@david، لاحظت أن “حل السطر الجديد ربما لن يتحقق” لأن “المسألة الأساسية بالنسبة لنا هي الحفاظ على سلامة المحتوى”. لكن المحتوى قد تم تغييره بالفعل عند إدراج الوسوم في المقام الأول. أنا… حقًا لا أفهم كيف يمكن أن يكون هذا أفضل بأي حال.

في الوقت الحالي، في كل مرة يدرج فيها شخص ما صورة في منشور ووردبريس الخاص به، تعود الصور مكسورة، وأنا أتعامل بشكل متكرر مع تعليقات من نوع “الصور مكسورة”، يتبعها غالبًا ردود مثل “نعم، هذا لأن discourse سيء”. أود تجنب هذين الأمرين.

أفهم أن إعداد “عدم تحميل الصور” قد يكون حلاً مؤقتًا، لكن في الواقع أنا أريد تحميل الصور، لذا أتمنى أن يكون ذلك مجرد إصلاح مؤقت.

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

يجب حل هذا بواسطة:

لنجرب ذلك هنا في ميتا.

<div>
صورة في كتلة HTML:
<img src="..." width=100 height=100>
</div>
صورة في كتلة HTML:
6 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 5 أيام. لم يعد يُسمح بالردود الجديدة.