]> git.openstreetmap.org Git - rails.git/blobdiff - lib/rich_text.rb
Shorten matching urls in linkify
[rails.git] / lib / rich_text.rb
index d6df214d1b0340c532b31cb1c57ced394ae397f1..d9c799611a7752f24a54dd582123449d0d8d4216 100644 (file)
@@ -76,7 +76,13 @@ module RichText
     end
 
     def linkify(text, mode = :urls)
-      Rinku.auto_link(ERB::Util.html_escape(text), mode, tag_builder.tag_options(:rel => "nofollow noopener noreferrer")).html_safe
+      link_attr = tag_builder.tag_options(:rel => "nofollow noopener noreferrer")
+      Rinku.auto_link(ERB::Util.html_escape(text), mode, link_attr) do |url|
+        %r{^https?://([^/]*)(.*)$}.match(url) do |m|
+          "#{Settings.linkify_hosts_replacement}#{m[2]}" if Settings.linkify_hosts_replacement &&
+                                                            Settings.linkify_hosts&.include?(m[1])
+        end || url
+      end.html_safe
     end
   end