修复由 WP Discourse 和 RSS 插件创建的帖子中的损坏图片

你可以在 Discourse 设置页面的“登录”部分完成此操作。选择“需要登录”设置,以防止匿名用户访问该站点。

这意味着 WP Discourse 插件可以向你的 Discourse 站点发起 API 调用,但这并不表示你的 WordPress 站点允许来自 Discourse 的请求通过。当你点击“显示完整帖子”按钮时,Discourse 会尝试向你的 WordPress 站点发起请求以抓取帖子内容。看来该请求很可能被拦截了。

感谢您提供这些宝贵的信息。我已禁用了登录功能(真是个绝妙的建议!),并打算先观望一下,等我正式上线主站时会发生什么。也许到时候“显示全文”按钮就能正常启用了。

关于 Onebox,您知道它是否仅适用于 HTTPS 网站吗?

要使链接生成 Onebox,需要满足一些要求。我不确定 HTTPS 现在是否已成为必要条件,但如果是的话,我也不会感到意外。其他要求包括:被链接的页面必须设置 Open Graph 描述标签,并且该页面需要允许来自 Discourse 服务器的请求通过。我怀疑你正在遇到的几个问题与你的预发布站点有关,这些问题阻止了 Onebox 的创建。

1 个赞

你好,Simon,

这很有道理。等我把主站正式上线后,我会再尝试一次 Oneboxing。

如上所述,希望将网站从测试环境正式上线后,也能改善帖子到 Discourse 的功能。

再次感谢您的帮助和见解。

看起来来自 RSS 馈送的损坏图片无法手动修复。
我可以看到图片在编辑器右侧的预览中重新出现。但在我点击保存后,帖子中的图片仍然无法显示。

如果图片不是本地的,Discourse 将不会生成缩略图。如果我启用 disabled image download domains,所有导入的帖子都将没有缩略图。

4 个赞

我也遇到了同样的问题。在预览中我看到两张图片,但保存后看起来是这样的:

有什么解决方法可以让图片不仅在预览中显示,也能在帖子中正常显示吗?

更新:2.7.0.beta7

2 个赞

您需要编辑帖子,在两个 Markdown 标签上方各添加一个空行。

如果您是从网站向 Discourse 发布帖子,请将图片所在的域名添加到 Discourse 的“禁用图片下载域名”站点设置中。这样可以防止新发布的帖子出现此问题。

谢谢 Simon。遗憾的是,我无法让它正常工作:

我可以发送公共 URL 给您,但不确定这是否会被视为垃圾信息。如果您需要,我可以通过私信发送。

请告知您是否需要更多信息。
(当前版本:2.7.0.beta7,890b06b10f)

更新:更多背景信息:这些帖子是通过 导入脚本 从 Freshdesk 论坛的 XML 导出文件导入的。实际内容包含了完整的 HTML。随后,我们将本地开发系统的备份导入到了新的生产实例中。起初,图片可以正常显示,因为原始图片标签引用的是外部 URL。但过了一段时间后,Discourse 下载了这些外部远程图片……之后帖子就出现了如上所示的损坏情况。

1 个赞

我真的不太明白这里的复杂性。显然,HTML 图像标签被替换成了 Markdown 格式——例如 ![](upload://6zqK52dO23i1JsYH2oyMU12U2ro.jpeg)。为什么不直接在 ! 之前添加两个换行符呢?这样既能正确渲染,又能让图片上传功能正常工作,从而避免图片损坏和跨站问题。

是否存在某种现实而非理论的情况,会导致这些空白字符引发问题?这种问题真的比当前插件中“图片总是损坏”的现状更严重吗?

我们的 WordPress 插件试图通过在 WordPress 端完全这样做来解决这个问题。在帖子发布到 Discourse 之前,在任何 HTML img 标签之前插入两个回车符即可解决此问题。

我认为我曾建议在我们的 Markdown 解析器中添加类似的功能:https://meta.discourse.org/t/markdown-rendering-issue-with-image-surrounded-with-html/152801。我认为拒绝该方案的原因是,我们不想偏离 CommonMark 规范。

好的,现在我更困惑了!我保证,这是真正的困惑,并非为了制造额外效果而故意为之。:slight_smile: 我们托管了 Discourse,且我们的 WordPress 安装的插件版本据我所知已是最新版(2.3.0),但我们仍然遇到图片损坏的问题,不得不手动添加空行。是否需要执行某些操作来启用此功能?

确实如此。这是一个令人困惑的问题。WP Discourse 插件试图修复图片相关的问题,但目前仅当帖子使用 WordPress 区块编辑器发布,且使用默认的“图片”区块向帖子添加图片时,才能正确捕获这些图片。如果您能分享一些关于如何在 WordPress 网站帖子中添加图片的详细信息,我们或许能想出解决此问题的方法。

理想情况下,Discourse 端会修复此问题;但如果无法实现,则需要改进 WP Discourse 插件所执行的图片解析功能。

嗯,好的,所以 Would you use this as your homepage? – Fedora Community Blog 指向了 https://discussion.fedoraproject.org/t/would-you-use-this-as-your-homepage/32123。(第二个链接中的图片能正常显示,是因为我直接编辑了帖子。)

当我查看 WordPress 后台时,发现所有图片都是图片块。

不过,我仍然不理解这里的复杂性。某个东西正在为 Discourse 站点上每篇帖子的原始文本添加类似 ![](upload://na9g3dGvhEU753JEnGrz8xER4XS.png) 的 Markdown 语法。为什么不让那个东西在每个插入的 Markdown 片段之前添加一个空行呢?

你能否尝试在相关的错误主题中提出这个问题:https://meta.discourse.org/t/markdown-rendering-issue-with-image-surrounded-with-html/152801。如果你将其发布在错误主题中,它可能会获得更多关注。

编辑:我会通知 @angus 关于 WP Discourse 插件未能正确解析图片的问题,以便在 WordPress 端修复该问题。他可能需要你提供更多细节来诊断问题所在。

1 个赞