着陆页的烹饪后流程

你好,

我正在尝试弄清楚为什么“帖子烹饪”(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 只是返回了已烹饪的帖子文本,但这意味着它是在页面加载时就已经执行过了……

谢谢您的帮助!

1 个赞