下载到 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>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 -->

具体发生了什么?这是某种 WordPress-Discourse 或 Markdown 的 bug,还是其他原因?

这涉及 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.