لن يتم عرض الصورة بعد تنزيلها على Discourse

مرحبًا!

لدي بعض مقالات ووردبريس مثل هذه: Et vous, vous avez appris vite ? - Monocycle.info
والتي تُرسل إلى منصة Discourse. في البداية، تظهر الصورة البعيدة بشكل صحيح في منشور Discourse، لكن بعد تحميل الصورة البعيدة إلى Discourse، لا تظهر بعد ذلك: Et vous, vous avez appris vite ? - Actualités - Monocycle.info

عند فحص كود منشور Discourse بعد استرجاع الصورة إلى Discourse، يبدو كما يلي:

إذا أضفت سطرًا فارغًا قبل كود الصورة، فإنها تظهر بشكل صحيح:

إليك كود مقال ووردبريس:

<!-- wp:paragraph -->
<p>في إطار بحث حول تعلم ركوب الدراجة أحادية العجلة، تهتم كلوديا ستير وكلااس بيل بوقت التعلم. ولتحقيق ذلك، يحتاجون إلى عدد كبير من الإحصائيات.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>لمساعدتهم، <a href="https://forms.gle/SEQtC6JQyw3tA7jv9">أجب على استبيانهم</a> (النسخة الفرنسية) ! إذا كنت قد أجبت بالفعل بلغة أخرى، فلا يجب التكرار. :)</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center"} -->
<div class="wp-block-image"><figure class="aligncenter"><img src="https://lh5.googleusercontent.com/N8Qtu1XBr7hK4Wg3hkxiMWPdU9V_czUuNS8VjHVxWfnLlQTCKrlUM2QoWrt9Zd4iXeMceaX7sZSi_8J_dJhOAgpISIdLdjguoSY0ZfrjCoHs6KEfBrXmrJcKU7tsyGaIqQ=w650" alt="" title=""/></figure></div>
<!-- /wp:image -->

ما الذي يحدث بالضبط؟ هل هذه مشكلة في WP-Discourse أو في Markdown، أم شيء آخر؟

هذا يتعلق بكيفية تعامل Discourse مع تحويل HTML إلى Markdown (وليس له علاقة بـ WP Discourse). حاولت إعادة إنتاج مشكلتك، ومع ذلك، فإن وسم <img> لا يتم تحويله إلى صورة بتنسيق Markdown، ويتم عرضه بشكل صحيح (بما في ذلك بعد “طهي” المنشور).

https://try.thepavilion.io/t/html-image-markdown-test/985

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

هل هناك سوء فهم من جانبي؟ الصورة غير معروضة في الرابط الخاص بك:

@Arkshine أرسل لي هذا الحل الذي يضيف مسافة فارغة قبل الصورة:

add_filter('wp_discourse_excerpt', [$this, 'wp_discourse_excerpt'], 10, 1);

/**
 * يضيف مسافات بيضاء فوق أي وسم <img>.
 * الهدف هو تجنب فشل Discourse في عرض الصورة المُحمَّلة بتنسيق Markdown.
 *
 * @param $post_content
 *
 * @return string
 */
public function wp_discourse_excerpt($post_content)
{
    $post_content = preg_replace('/(<img\s)/i', "\n\n$1", $post_content);
    $post_content = preg_replace('/[\n]{3,}/', "\n\n", $post_content);

    return $post_content;
}

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.