ランディングページでの調理後プロセス

こんにちは、

Landing Pages プラグインでポストの「cooking(レンダリング処理)」が機能しない理由と、プラグインを変更せずにそれを動作させる方法(可能であれば)について教えてほしいと考えています。もし変更が必要であれば、どのような対応が考えられるでしょうか?Ruby は私の得意分野ではありません。

私の Discourse インスタンスには、PDF-Preview コンポーネントと Discourse-Chart プラグインがインストールされています。しかし、ポストをレンダリングする際、全く cooking が行われていません。少なくとも、既存のプラグインやテーマコンポーネントを反映していないようです。

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 は単に既に cooking されたポストのテキストを返しているだけなのかもしれませんが、これはページ読み込み時にすでに実行されたことを意味しますよね…

ご助力よろしくお願いいたします!

「いいね!」 1