X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/2af0840ff314f9d1e0265a4a1b50fc6db4af9047..18b8fc60bb08b2df03fa74537ea51cdd7fcfd39a:/app/helpers/browse_helper.rb diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index 7ccfca334..6c9e108dc 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -1,3 +1,5 @@ +require "uri" + module BrowseHelper def printable_name(object, version = false) if object.id.is_a?(Array) @@ -50,6 +52,10 @@ module BrowseHelper end end + def link_follow(object) + "nofollow" if object.tags.empty? + end + def format_key(key) if url = wiki_link("key", key) link_to h(key), url, :title => t("browse.tag_details.wiki_link.key", :key => key) @@ -120,7 +126,7 @@ module BrowseHelper if value =~ /^([a-z-]{2,12}):(.+)$/i # Value is : so split it up # Note that value is always left as-is, see: https://trac.openstreetmap.org/ticket/4315 - lang = $1 + lang = $1 else # Value is <title> so default to English Wikipedia lang = "en" @@ -133,17 +139,19 @@ module BrowseHelper return nil end - if value =~ /^([^#]*)(#.*)/ + if value =~ /^([^#]*)#(.*)/ # Contains a reference to a section of the wikipedia article # Must break it up to correctly build the url value = $1 - section = $2 + section = "#" + $2 + encoded_section = "#" + URI.encode($2.gsub(/ +/, "_"), /[^A-Za-z0-9:_]/).tr("%", ".") else section = "" + encoded_section = "" end { - :url => "http://#{lang}.wikipedia.org/wiki/#{value}?uselang=#{I18n.locale}#{section}", + :url => "http://#{lang}.wikipedia.org/wiki/#{value}?uselang=#{I18n.locale}#{encoded_section}", :title => value + section } end