Hallo,
ich versuche herauszufinden, warum „post cooking" für das Landing Pages-Plugin nicht funktioniert und wie ich es (falls möglich) zum Laufen bringen kann, ohne das Plugin zu ändern. Falls ich es doch ändern müsste, was könnte ich tun? Ruby ist nicht gerade meine Stärke.
Auf meiner Discourse-Instanz habe ich sowohl die PDF-Preview-Komponente als auch das Discourse-Chart-Plugin installiert. Allerdings wird beim Rendern des Beitrags dieser überhaupt nicht „cooked" – oder zumindest werden bestehende Plugins und Theme-Komponenten nicht berücksichtigt.
Um den Beitrag in den Landing Pages darzustellen, wird der folgende Code angewendet und ausgeführt:
In der Datei html.erb:
::LandingPages::Post.html(@topic_view.posts.first).html_safe
Dies ruft den folgenden Code in discourse-landing-pages/lib/landing-pages/post.rb auf:
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
Von hier aus bin mir nicht sicher, was genau passiert. Ich vermute, dass post.cooked einfach den bereits verarbeiteten Beitragstext zurückgibt, was bedeutet, dass das „Cooking" bereits beim Laden der Seite ausgeführt wurde…
Vielen Dank für eure Hilfe!