X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/6033359bd07e3da09efd2ffe7a2558dbcffbc1c2..3d3b2b47964ec91ef1ab1946b7258a06665caced:/config/initializers/sanitize.rb diff --git a/config/initializers/sanitize.rb b/config/initializers/sanitize.rb index a6cce19a9..f8f2b784d 100644 --- a/config/initializers/sanitize.rb +++ b/config/initializers/sanitize.rb @@ -2,15 +2,33 @@ Sanitize::Config::OSM = Sanitize::Config.merge( Sanitize::Config::RELAXED, :elements => Sanitize::Config::RELAXED[:elements] - %w[div style], :remove_contents => %w[script style], + :attributes => Sanitize::Config.merge( + Sanitize::Config::RELAXED[:attributes], + "img" => Sanitize::Config::RELAXED[:attributes]["img"] + ["loading"] + ), :transformers => lambda do |env| + style = env[:node]["style"] || "" + env[:node].remove_class - env[:node].kwattr_remove("style", nil) + env[:node].remove_attribute("style") + env[:node].add_class("table table-sm w-auto") if env[:node_name] == "table" + case style + when /\btext-align:\s+left\b/ + env[:node].add_class("text-start") + when /\btext-align:\s+center\b/ + env[:node].add_class("text-center") + when /\btext-align:\s+right\b/ + env[:node].add_class("text-end") + end + if env[:node_name] == "a" rel = env[:node]["rel"] || "" env[:node]["rel"] = rel.split.select { |r| r == "me" }.append("nofollow", "noopener", "noreferrer").sort.join(" ") end + + env[:node]["loading"] = "lazy" if env[:node_name] == "img" end )