你好,
我正在尝试弄清楚为什么“帖子烹饪”(post cooking)功能对 Landing Pages 插件不起作用,以及如何(如果可能的话)在不修改插件的情况下使其正常工作。如果必须修改,我可以做些什么?Ruby 并不是我的强项。
在我的 Discourse 实例中,我安装了 PDF-Preview 组件以及 Discourse-Chart 插件。然而,在渲染帖子时,它完全没有被“烹饪”(cooked)。或者至少,它没有考虑现有的插件和主题组件。
为了在 Landing Pages 中渲染帖子,应用并执行了以下代码。
在 html.erb 文件中:
::LandingPages::Post.html(@topic_view.posts.first).html_safe
这调用了 discourse-landing-pages/lib/landing-pages/post.rb 中的以下代码:
class ::LandingPages::Post
def self.html(post, remove_topic_image: true)
fragment = Nokogiri::XML.fragment(post.cooked)
if remove_topic_image && topic_image_sha1 = post.topic&.image_upload&.sha1
if image_node = fragment.css("a[href*='#{topic_image_sha1}']").first
image_node.parent.remove
end
end
fragment.to_html
end
end
到这里,我不确定发生了什么。我推测 post.cooked 只是返回了已烹饪的帖子文本,但这意味着它是在页面加载时就已经执行过了……
谢谢您的帮助!