تنسيق ماركداون متداخل مع html يجعل الصور لا يتم تحميلها

إليك مقتطفًا من منشور تم إنشاؤه على موقع نقاش مشروع فيدورا من مدونة مجتمعنا:

<p>أخبرنا برأيك. هل ستستخدم هذا كصفحة رئيسية لك الآن بعد أن أصبح يحتوي على حقل محرك بحث؟ كيف تعتقد أننا يمكننا تحسينه أكثر؟</p> ![](upload://na9g3dGvhEU753JEnGrz8xER4XS.png)<p class="has-text-align-center">أو</p> ![](upload://def2zSzNAJtyuOorvTI2eV7rGW1.png)<p>إذا كنت مهتمًا برؤية المزيد، تحقق من <a href="https://discussion.fedoraproject.org/t/how-do-you-feel-about-the-new-design-of-start-fedoraproject-org-page/28689">المسودة على Figma</a>.</p>

لاحظ كيف أن أسطر الصور بصيغة المارك داون هذه لا تبدأ فعليًا في أسطر جديدة؟ هذا يجعل الصور غير معروضة. إذا قمت بتحرير الرسالة وإضافة سطر جديد (carriage return) قبل كل ![]، فإن الصور ستظهر بشكل صحيح.

هل هناك شيء يمكنني تغييره في إعداداتنا لإصلاح هذا؟ أم أن هذا مجرد خطأ في الإضافة؟

مرحبًا @mattdm،

هل يمكنك مشاركة رابط المنشور الأصلي على WordPress ومنشور Discourse الذي يحتوي على مقتطف، إذا كانا منشورين علنًا؟

إذًا، تقوم إضافة WP Discourse ببساطة بنقل أي HTML تجده في منشور WordPress إلى Discourse، الذي يعالجه بعد ذلك للإدراج في منشور Discourse. لذا فإن طريقة عرض HTML في مقتطفات منشورات WordPress داخل Discourse تعتمد على شيئين:

  1. البنية الأصلية لـ HTML في WordPress (على سبيل المثال)
  2. طريقة تحليل HTML بواسطة محول الصيغ (markdown parser) الخاص بـ Discourse لعرضه في منشورات Discourse (على سبيل المثال).

إذًا، إما أن يكون الأمر يتعلق بسؤال حول البنية الهيكلية لـ HTML في WordPress، وهو أمر يقع بشكل أساسي خارج نطاق إضافة WP Discourse أو حتى Discourse نفسه، أو أنه في الغالب مسألة رأي حول ما يجب أن يفعله محول HTML، مع أن هناك أحيانًا تحسينات واضحة يمكن إجراؤها في هذا الصدد.

ومع ذلك، فإن الغوص في تفاصيل التحليل أحيانًا يكون مفيدًا، لذا إذا كانت لديك تفاصيل إضافية حول البنية الهيكلية لـ HTML في منشور WordPress، فلا تتردد في مشاركتها وسأقوم بالتحقيق بشكل أعمق :slight_smile:

واجهتُ مشكلةً مشابهةً في منشور discourse هذا، الذي أنشأه إضافة استطلاع RSS (ليس إضافة ووردبريس):

كان رمز ™ في السطر الأول في الواقع وسم HTML <img>، وقد نقلته إضافة RSS بشكل صحيح. ومع ذلك، تعطل المنشور عندما قامت منصة Discourse بخطوة “تنزيل نسخ محلية من الصور”:

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

يبدو أن مشكلة @mattdm كانت نفسها:

إعجابَين (2)

@simonk شكرًا لك على هذا التحقيق المفيد. يمكنكم كلاهما معالجة المشكلة من خلال إدخال نطاقات WordPress الخاصة بكم في إعدادات الموقع نطاقات تحميل الصور المعطلة.

إذا كنت تبحث عن التعمق أكثر في المشكلة، أي محاولة التعامل معها بطريقة آلية، فإن الفرق بين حالة @mattdm وحالتكم يشير إلى التعقيد الموجود هناك. فهو يتوقع أن يتم نقل معالجة المتصفح لعناصر HTML <p> و <img> على شكل سطر جديد في التنسيق المرقم (Markdown)، بينما تتوقعون أنتما العكس تقريبًا (وليس تمامًا)، أي أن تُعرض الصورة مضمنة مع الأبعاد نفسها لعنصر <img> الموجود في HTML الأصلي.

لمزيد من المعلومات حول هذا الجانب من المشكلة، يمكنك الاطلاع على المنشورات الموجودة مسبقًا حول هذا الموضوع، على سبيل المثال:

إعجابَين (2)

شكرًا لك @simonk – نعم، هذا بالضبط ما أقصده.

@angus، ما هي نتيجة ذلك؟ هل يعني ذلك عدم وجود صور على الإطلاق، أم أن الصور ستكون مرتبطة بالروابط الأصلية على موقع ووردبريس؟

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

ستكون الصور مرتبطة بصلات مباشرة إلى النسخ الأصلية.

عذرًا، أنا مشوش. ظننت أن قلقك يتعلق بفواصل الأسطر؟ هل تقصد أن النسخة المنشورة (أي عند القراءة فقط، وليس أثناء التعديل) تحتوي على ماركداون خام، وهذا ما يقلقك؟

الإضافة ترسل فقط كود HTML الخام. أما الماركداون فيتم توليده عند معالجة المنشور في ديسكورت.

جرّب إعداد disabled image download domains وانظر كيف تسير الأمور.

بسبب عدم وجود كسر سطر، عندما يعرض نظام Discourse الصفحة — للمستخدمين وليس للمحررين —، بدلاً من عرض الصور في المكان الذي يظهر فيه النص ![](upload://def2zSzNAJtyuOorvTI2eV7rGW1.png)، ترى النص حرفياً كما هو. يجب تدخل شخص ما وتعديل المنشور بعد نشره تلقائياً وإضافة كسور أسطر قبل كل صورة حتى تظهر فعلياً.

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

أفهم، شكرًا للتوضيح. بصراحة، من غير المرجح أن يتغير هذا قريبًا لـالأسباب المذكورة في الموضوع الذي ربطت به أعلاه. على سبيل المثال

الأمر الأهم بالنسبة لنا هو الحفاظ على سلامة المحتوى، لذا فمن غير المرجح أن يتم تطبيق حل السطر الجديد.

المشكلة تكمن في أنه إذا حاولت إجراء تصحيح تلقائي للمشكلة التي تصفها، فقد يؤدي ذلك إلى نشوء مشاكل أخرى. الحل الحالي هنا هو إضافة نطاق ووردبريس الخاص بك إلى إعداد الموقع disabled image download domains.

تعديل لقد قدمت مقترحًا صغيرًا في هذا الصدد، لكنه افتراضي، وأود أن أكرر أن الحل الحالي هو تعطيل تنزيل الصور لنطاق ووردبريس الخاص بك.

أنا حقًا لا أفهم الجوهر الأساسي هنا. كيف يتم الحفاظ على سلامة المحتوى من خلال السلوك الحالي؟ من الواضح أن هذا غير صحيح.

يبدو أنه إذا كنت ستقوم باستبدال HTML بـ Markdown، فإن استبداله بـ Markdown يُظهر بشكل صحيح هو… الإجابة الصحيحة الوحيدة.

الأمر ليس كما لو أننا نفعل شيئًا معقدًا في جانب WordPress — إنه مجرد محرر الكتل العادي والأشخاص يضيفون الصور بالطريقة العادية في WordPress.

سأقوم بتفعيل إعداد “تعطيل تحميل الصور” لأرى ما إذا كان ذلك سيساعدنا، لكنني أفضّل حقًا، حقًا أن يعمل هذا الأمر ببساطة دون مشاكل.

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

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

إذا تابعت النقاش الذي ربطت به، بما في ذلك منشور ديفيد الأخير، فسترى أن هناك بعض المسارات الممكنة التي يمكننا اتباعها هنا. قد تنجح إحداها، وستعالج هذه الحالة تحديدًا. إذا كان هناك حل أسهل، لكانت بالتأكيد قد قدمت طلب سحب (PR) إلى Discourse لمعالجته.

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

إعجابَين (2)

شكرًا! أقدر ذلك!

لقد قمت بتحديث الإعداد وسأبلغك عن كيفية عمله.