L'image du post ne s'affiche pas après avoir été téléchargée sur Discourse

Bonjour !

J’ai des articles WP comme celui-ci : Et vous, vous avez appris vite ? - Monocycle.info
qui sont envoyés sur Discourse. Au départ, l’image distante s’affiche correctement dans le post Discourse, mais une fois l’image téléchargée sur Discourse, elle ne s’affiche plus : Et vous, vous avez appris vite ? - Actualités - Monocycle.info

En examinant le code du post Discourse après que l’image a été récupérée, il ressemble à ceci :

Si j’ajoute une ligne vide avant le code de l’image, elle s’affiche correctement :

Voici le code de l’article WP :

<!-- wp:paragraph -->
<p>Dans le cadre d'une recherche sur l'apprentissage du monocycle, Claudia Stehr et Klaas Bil s'intéressent au temps de l'apprentissage. Et pour cela, ils ont besoin d'un grand nombre de statistiques.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour les aider, <a href="https://forms.gle/SEQtC6JQyw3tA7jv9">répondez à leur questionnaire</a> (version française) ! Si vous avez déjà répondu dans une autre langue, il ne faut pas doublonner. :)</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 -->

Que se passe-t-il exactement ? Est-ce un bug WP-Discourse / Markdown ou autre chose ?

Cela concerne la façon dont Discourse gère la conversion HTML vers Markdown (cela n’a rien à voir avec WP Discourse). J’ai essayé de reproduire votre problème, mais la balise <img> n’est pas convertie en image Markdown et s’affiche correctement (y compris après la « cuisson » du message).

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

Est-ce que je mal compris quelque chose ? L’image ne s’affiche pas dans votre lien :

@Arkshine m’a envoyé cette solution qui ajoute un espace vide avant une image :

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

/**
 * Ajoute des espaces vides au-dessus de toute balise <img>.
 * L'objectif est d'éviter l'échec de Discourse lors de l'affichage d'images téléchargées en 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;
}