Изображение поста не отображается после загрузки в Discourse

Привет!

У меня есть статьи в WordPress, подобные этой: Et vous, vous avez appris vite ? - Monocycle.info
Они отправляются в Discourse. Сначала удалённое изображение корректно отображается в посте Discourse, но после того, как изображение загружается на сервер Discourse, оно перестает показываться: Et vous, vous avez appris vite ? - Actualités - Monocycle.info

Посмотрев на код поста Discourse после загрузки изображения, я вижу следующее:

Если я добавлю пустую строку перед кодом изображения, то оно отображается корректно:

Вот код статьи из WordPress:

<!-- wp:paragraph -->
<p>В рамках исследования по обучению езде на моноцикле Клаудия Штеhr и Клаас Биль интересуются временем обучения. Для этого им требуется большое количество статистических данных.</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

Неужели я что-то неправильно понял? Изображение не отображается по вашей ссылке:

@Arkshine прислал мне это решение, которое добавляет пустое пространство перед изображением:

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

/**
 * Добавляет пустые строки перед любым тегом <img>.
 * Цель — избежать сбоя в отображении загруженных изображений в формате Markdown в Discourse.
 *
 * @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;
}