مرحبًا،
أحاول فهم سبب عدم عمل “طهي” المنشورات (post cooking) في إضافة صفحات الهبوط (Landing Pages)، وكيف يمكنني جعلها تعمل (إذا كان ذلك ممكنًا) دون تعديل الإضافة، ولكن إذا اضطررت إلى ذلك، فماذا يمكنني أن أفعل؟ البرمجة بلغة Ruby ليست من نقاط قوتي.
في مثيل Discourse الخاص بي، قمت بتثبيت مكون معاينة PDF بالإضافة إلى إضافة Discourse-Chart. ومع ذلك، عند عرض المنشور، لم يتم “طهيه” على الإطلاق. أو على الأقل، لم يأخذ في الاعتبار الإضافات ومكونات السمات الموجودة.
لعرض المنشور في صفحات الهبوط، يتم تطبيق الكود التالي وتنفيذه.
في ملف 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 يعيد فقط نص المنشور المطهو، لكن هذا يعني أنه تم تنفيذه بالفعل عند تحميل الصفحة…
شكرًا لمساعدتكم!