You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

51 lines
1.3 KiB

module SiteHelper
def frontend_javascript_importmap_tags(only_use = %w[application])
only_use = Array(only_use)
importmap_json = JSON.parse(Rails.application.importmap.to_json(resolver: self))["imports"].select { |k, v| only_use.include?(k) }
safe_join [
javascript_inline_importmap_tag(JSON.pretty_generate({ "imports" => importmap_json })),
javascript_module_preload_tag(*importmap_json.map { |v| v[1] }),
javascript_import_module_tag(only_use[0])
], "\n"
end
def node_title(node)
parts = [ node.page_title.blank? ? node.title : node.page_title ]
parts << t(:client_name)
parts.uniq.join(" - ")
rescue
t(:client_name)
end
def random_value(from, to)
range = rand(2) == 0 ? (-to..-from) : (from..to)
rand(range)
end
def parse_article_html(html)
result = {}
return result if html.blank?
doc = Nokogiri::HTML.fragment(html, "utf-8")
first_link = doc.at_css("a")
first_link.remove if first_link
result[:title] = doc.at_css("h1")&.text
result[:description] = doc.at_css("div")&.text
result[:link] = first_link&.to_html
doc.search("*").each do |node|
while node.children.last and node.children.last.name == "br"
node.children.last.remove
end
end
result[:html] = doc.to_html
result
end
end