]> git.openstreetmap.org Git - rails.git/blobdiff - config/initializers/sanitize.rb
fix formatting
[rails.git] / config / initializers / sanitize.rb
index 6f2e30852029f17d0deafa615b4068daf540d9c3..a6cce19a96633437469f0345c07a350825345511 100644 (file)
@@ -1,8 +1,16 @@
-Sanitize::Config::OSM = Sanitize::Config::RELAXED.dup
+Sanitize::Config::OSM = Sanitize::Config.merge(
+  Sanitize::Config::RELAXED,
+  :elements => Sanitize::Config::RELAXED[:elements] - %w[div style],
+  :remove_contents => %w[script style],
+  :transformers => lambda do |env|
+    env[:node].remove_class
+    env[:node].kwattr_remove("style", nil)
+    env[:node].add_class("table table-sm w-auto") if env[:node_name] == "table"
 
-Sanitize::Config::OSM[:elements] -= %w[div style]
-Sanitize::Config::OSM[:add_attributes] = { "a" => { "rel" => "nofollow noopener noreferrer" } }
-Sanitize::Config::OSM[:remove_contents] = %w[script style]
-Sanitize::Config::OSM[:transformers] = lambda do |env|
-  env[:node].add_class("table table-sm w-auto") if env[:node_name] == "table"
-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
+  end
+)