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