More improvements to mediawiki fragment escaping
It turns out that the PHP urlencode encodes more characters than the ruby URI.encode does by default, so specify our own characters to encode based on http://php.net/manual/en/function.urlencode.php with the extra exclusion of colon, which the mediawiki code reverses after the encoding is done. Fixes #967
This commit is contained in:
parent
8c37f47244
commit
ca213b873f
2 changed files with 5 additions and 1 deletions
|
@ -140,7 +140,7 @@ module BrowseHelper
|
||||||
# Must break it up to correctly build the url
|
# Must break it up to correctly build the url
|
||||||
value = $1
|
value = $1
|
||||||
section = "#" + $2
|
section = "#" + $2
|
||||||
encoded_section = "#" + URI.encode($2.gsub(" ", "_")).gsub("%3A", ":").gsub("%", ".")
|
encoded_section = "#" + URI.encode($2.gsub(/ +/, "_"), /[^A-Za-z0-9:_]/).gsub("%", ".")
|
||||||
else
|
else
|
||||||
section = ""
|
section = ""
|
||||||
encoded_section = ""
|
encoded_section = ""
|
||||||
|
|
|
@ -196,6 +196,10 @@ class BrowseHelperTest < ActionView::TestCase
|
||||||
assert_equal "http://de.wikipedia.org/wiki/de:Alte Brücke (Heidelberg)?uselang=en#Br.C3.BCckenaffe", link[:url]
|
assert_equal "http://de.wikipedia.org/wiki/de:Alte Brücke (Heidelberg)?uselang=en#Br.C3.BCckenaffe", link[:url]
|
||||||
assert_equal "de:Alte Brücke (Heidelberg)#Brückenaffe", link[:title]
|
assert_equal "de:Alte Brücke (Heidelberg)#Brückenaffe", link[:title]
|
||||||
|
|
||||||
|
link = wikipedia_link("wikipedia", "de:Liste der Baudenkmäler in Eichstätt#Brückenstraße 1, Ehemaliges Bauernhaus")
|
||||||
|
assert_equal "http://de.wikipedia.org/wiki/de:Liste der Baudenkmäler in Eichstätt?uselang=en#Br.C3.BCckenstra.C3.9Fe_1.2C_Ehemaliges_Bauernhaus", link[:url]
|
||||||
|
assert_equal "de:Liste der Baudenkmäler in Eichstätt#Brückenstraße 1, Ehemaliges Bauernhaus", link[:title]
|
||||||
|
|
||||||
I18n.locale = "pt-BR"
|
I18n.locale = "pt-BR"
|
||||||
|
|
||||||
link = wikipedia_link("wikipedia", "zh-classical:Test#Section")
|
link = wikipedia_link("wikipedia", "zh-classical:Test#Section")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue