]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5850'
authorTom Hughes <tom@compton.nu>
Thu, 27 Mar 2025 17:30:12 +0000 (17:30 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 27 Mar 2025 17:30:12 +0000 (17:30 +0000)
1  2 
lib/rich_text.rb

index 36e70063f9ee4374840113c377bd67ba31185edf,d2891ef6692e426f680cbf19a7312934820ed60a..1147cbc6031041beaa88ac85b6636c3259abafb6
@@@ -76,20 -74,14 +74,20 @@@ module RichTex
      end
  
      def linkify(text, mode = :urls)
-       link_attr = tag_builder.tag_options(:rel => "nofollow noopener noreferrer")
+       link_attr = '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
 +        url = shorten_host(url, Settings.linkify_hosts, Settings.linkify_hosts_replacement)
 +        shorten_host(url, Settings.linkify_wiki_hosts, Settings.linkify_wiki_hosts_replacement)
        end.html_safe
      end
 +
 +    private
 +
 +    def shorten_host(url, hosts, hosts_replacement)
 +      %r{^https?://([^/]*)(.*)$}.match(url) do |m|
 +        "#{hosts_replacement}#{m[2]}" if hosts_replacement && hosts&.include?(m[1])
 +      end || url
 +    end
    end
  
    class HTML < Base