fixed mediawiki link handling

This commit is contained in:
Douglas Campos
2011-01-11 23:57:22 -02:00
parent e4103e6181
commit 2dbb4e9fa7
2 changed files with 28 additions and 16 deletions
+9 -4
View File
@@ -13,6 +13,7 @@ module Gollum
@name = page.filename @name = page.filename
@data = page.text_data @data = page.text_data
@version = page.version.id @version = page.version.id
@format = page.format
@dir = ::File.dirname(page.path) @dir = ::File.dirname(page.path)
@tagmap = {} @tagmap = {}
@codemap = {} @codemap = {}
@@ -294,10 +295,14 @@ module Gollum
# Returns the String HTML if the tag is a valid page link tag or nil # Returns the String HTML if the tag is a valid page link tag or nil
# if it is not. # if it is not.
def process_page_link_tag(tag, no_follow = false) def process_page_link_tag(tag, no_follow = false)
parts = tag.split('|') parts = if @format == :mediawiki
name = parts[0].strip tag.split('|').reverse
cname = @wiki.page_class.cname((parts[1] || parts[0]).strip) else
tag = if name =~ %r{^https?://} && parts[1].nil? tag.split('|')
end
name, page_name = *parts.compact.map(&:strip)
cname = @wiki.page_class.cname(page_name || name)
tag = if name =~ %r{^https?://} && page_name.nil?
%{<a href="#{name}">#{name}</a>} %{<a href="#{name}">#{name}</a>}
else else
presence = "absent" presence = "absent"
+7
View File
@@ -169,6 +169,13 @@ context "Markup" do
assert_equal "<p>a <a class=\"internal present\" href=\"/Potato\">Potato Heaad</a></p>", output assert_equal "<p>a <a class=\"internal present\" href=\"/Potato\">Potato Heaad</a></p>", output
end end
test "page link with different text on mediawiki" do
@wiki.write_page("Potato", :mediawiki, "a [[Potato|Potato Heaad]] ", commit_details)
page = @wiki.page("Potato")
output = page.formatted_data
assert_equal "<p>\na <a class=\"internal present\" href=\"/Potato\">Potato Heaad</a> \n</p>", output
end
######################################################################### #########################################################################
# #
# Images # Images