]> git.openstreetmap.org Git - rails.git/blob - config/initializers/sanitize.rb
Add frozen_string_literal comments to ruby files
[rails.git] / config / initializers / sanitize.rb
1 # frozen_string_literal: true
2
3 Sanitize::Config::OSM = Sanitize::Config.merge(
4   Sanitize::Config::RELAXED,
5   :elements => Sanitize::Config::RELAXED[:elements] - %w[div style],
6   :remove_contents => %w[script style],
7   :attributes => Sanitize::Config.merge(
8     Sanitize::Config::RELAXED[:attributes],
9     "img" => Sanitize::Config::RELAXED[:attributes]["img"] + ["loading"]
10   ),
11   :transformers => lambda do |env|
12     style = env[:node]["style"] || ""
13
14     env[:node].remove_class
15     env[:node].remove_attribute("style")
16
17     env[:node].add_class("table table-sm w-auto") if env[:node_name] == "table"
18
19     case style
20     when /\btext-align:\s+left\b/
21       env[:node].add_class("text-start")
22     when /\btext-align:\s+center\b/
23       env[:node].add_class("text-center")
24     when /\btext-align:\s+right\b/
25       env[:node].add_class("text-end")
26     end
27
28     if env[:node_name] == "a"
29       rel = env[:node]["rel"] || ""
30
31       env[:node]["rel"] = rel.split.select { |r| r == "me" }.append("nofollow", "noopener", "noreferrer").sort.join(" ")
32     end
33
34     env[:node]["loading"] = "lazy" if env[:node_name] == "img"
35   end
36 )