Tweak wikipedia links stuff
This commit is contained in:
parent
c9a3091ca8
commit
d2585ea044
2 changed files with 20 additions and 21 deletions
|
@ -26,7 +26,7 @@ module BrowseHelper
|
|||
|
||||
def format_value(key, value)
|
||||
if wp = wikipedia_link(key, value)
|
||||
link_to h(wp['title']), wp['url'], :title => t('browse.tag_details.wiki_link.wikipedia', :page => wp['title'])
|
||||
link_to h(wp[:title]), wp[:url], :title => t('browse.tag_details.wikipedia_link', :page => wp[:title])
|
||||
elsif url = wiki_link("tag", "#{key}=#{value}")
|
||||
link_to h(value), url, :title => t('browse.tag_details.wiki_link.tag', :key => key, :value => value)
|
||||
else
|
||||
|
@ -49,32 +49,31 @@ private
|
|||
end
|
||||
|
||||
def wikipedia_link(key, value)
|
||||
# English Wikipedia by default
|
||||
lang = 'en'
|
||||
|
||||
if key == 'wikipedia' or key =~ /^wikipedia:(\S+)$/
|
||||
mylang = $1
|
||||
|
||||
# Some k/v's are wikipedia=http://en.wikipedia.org/wiki/Full%20URL
|
||||
return nil if value =~ /^http:\/\//
|
||||
|
||||
if mylang
|
||||
lang = mylang
|
||||
if key == "wikipedia"
|
||||
# This regex should match Wikipedia language codes, everything
|
||||
# from de to zh-classical
|
||||
elsif value =~ /^([a-z-]{2,12}):(.+)$/
|
||||
if value =~ /^([a-z-]{2,12}):(.+)$/
|
||||
# Value is <lang>:<title> so split it up
|
||||
lang = $1
|
||||
# Don't display e.g. "en:Foobar" as the title, just "Foobar"
|
||||
value = $2
|
||||
else
|
||||
# Value is <title> so default to English Wikipedia
|
||||
lang = 'en'
|
||||
end
|
||||
|
||||
locale = I18n.locale.to_s
|
||||
return {
|
||||
'url' => "http://#{lang}.wikipedia.org/wiki/#{value}?uselang=#{locale}",
|
||||
'title' => value
|
||||
}
|
||||
elsif key =~ /^wikipedia:(\S+)$/
|
||||
# Language is in the key, so assume value is a simple title
|
||||
lang = $1
|
||||
else
|
||||
# Not a wikipedia key!
|
||||
return nil
|
||||
end
|
||||
|
||||
# Some k/v's are wikipedia=http://en.wikipedia.org/wiki/Full%20URL
|
||||
return nil if value =~ /^http:\/\//
|
||||
|
||||
return {
|
||||
:url => "http://#{lang}.wikipedia.org/wiki/#{value}?uselang=#{I18n.locale}",
|
||||
:title => value
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue