Processus de cuisson post-cuisson avec des pages de destination

Bonjour,

Je tente de comprendre pourquoi la cuisson postérieure ne fonctionne pas pour le plugin Landing Pages et comment je pourrais la faire fonctionner (si possible) sans modifier le plugin. Mais si je devais le faire, que pourrais-je entreprendre ? Ruby n’est pas mon point fort.

Sur mon instance Discourse, j’ai installé le composant PDF-Preview ainsi que le plugin Discourse-Chart. Cependant, lors du rendu du message, celui-ci n’est absolument pas cuit. Ou du moins, il ne prend pas en compte les plugins et les composants de thème existants.

Pour rendre le message dans les Landing Pages, le code suivant est appliqué et exécuté.

Dans le fichier html.erb :

::LandingPages::Post.html(@topic_view.posts.first).html_safe

qui appelle le code suivant dans 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

À partir d’ici, je ne suis pas sûr de ce qui se passe. Je suppose que post.cooked retourne simplement le texte du message déjà cuit, mais cela signifie que cela a déjà été exécuté lors du chargement de la page…

Merci pour votre aide !

1 « J'aime »