我试图将 Discourse 配置为无头 API 服务器。我需要在自定义构建的落地页上显示主题的完整文本和图片。通过设置 always_include_topic_excerpts,我已经能够获取完整文本,但摘录中不包含图片。
进一步深入研究后,我发现 ExcerptParser.rb 中的一些选项可以帮助我满足需求。如果我能修改 Post.rb 中的这一行,就能实现我的目标:discourse/app/models/post.rb at 1059557ce11c474fdf568571423a88821b072141 · discourse/discourse · GitHub
最佳的做法是什么?也许可以为此创建一个类似 SiteSetting.post_excerpt_maxlength 的站点设置?
理想情况下,我希望有三个布尔类型的设置:
post_excerpt_markdown_images
post_excerpt_strip_images
post_excerpt_strip_links
感谢您的帮助!
你为什么要通过摘要来获取完整的主题文本?你应该能够获取包含图片的完整渲染内容:
嗨,Kris,感谢回复。当我访问 /latest.json 时,我需要完整的主题文本。默认情况下,它只返回主题标题,除非是一些帖子(如公告),此时还会返回摘要。启用 always_include_topic_excerpts 设置后,我可以获取除链接和图片外的完整文本。我正在寻找一种方法,以便在摘要中包含链接和图片。
Bcat
(Bcat)
5
我不是很明白,但想讨论一下:是移除所有链接和图片,还是添加它们?
你好 @Bcat,我稍后会尝试提供一张前后对比的截图。
Johani
(Joe)
7
感谢提交草稿 PR @chandan.gupta,但我们出于特定原因会移除摘要中的图片。
此外,除非有广泛需求,我们也不愿额外添加站点设置。如果您确实需要在自己的站点上实现此功能,建议您为其创建一个插件。
谢谢 @Johani,没问题。这说得通。所以这也可以通过插件实现,对吗?
sam
(Sam Saffron)
9
你可以通过插件实现,但这是一种混乱的修改,因为你在与核心默认设置对抗,会导致意想不到的结果。
@sam,如果要让 /latest.json 同时返回 posts[0].raw 或 posts[0].cooked,这需要开发一个复杂的插件吗?这样我们就不需要借助“摘要”字段了,也能满足我们的需求。你能否指点一下实现此功能的参考文档?我明白这会涉及更多的数据库读取操作,但我可以接受这个性能开销。