From 05a7b4c06cddc6c78137edd84b4b1a8abc9386c7 Mon Sep 17 00:00:00 2001 From: rick Date: Thu, 30 Sep 2010 15:32:02 -0700 Subject: [PATCH] Allow users to pass anchors to page links. http://github.com/github/gollum/issues/\#issue/21 --- lib/gollum/markup.rb | 24 +++++++++++++++++------- test/test_markup.rb | 18 +++++++++++++++++- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/lib/gollum/markup.rb b/lib/gollum/markup.rb index b05b13a5..b1010138 100644 --- a/lib/gollum/markup.rb +++ b/lib/gollum/markup.rb @@ -267,14 +267,24 @@ module Gollum if name =~ %r{^https?://} && parts[1].nil? %{#{name}} else - if page = @wiki.page(cname) - link = ::File.join(@wiki.base_path, CGI.escape(Page.cname(page.name))) - presence = "present" - else - link = ::File.join(@wiki.base_path, CGI.escape(cname)) - presence = "absent" + presence = "absent" + link_name = cname + page, extra = find_page_from_name(cname) + if page + link_name = Page.cname(page.name) + presence = "present" end - %{#{name}} + link = ::File.join(@wiki.base_path, CGI.escape(link_name)) + %{#{name}} + end + end + + def find_page_from_name(cname) + if page = @wiki.page(cname) + return page + end + if pos = cname.index('#') + [@wiki.page(cname[0...pos]), cname[pos..-1]] end end diff --git a/test/test_markup.rb b/test/test_markup.rb index c8c7a3d3..54d12684 100644 --- a/test/test_markup.rb +++ b/test/test_markup.rb @@ -89,12 +89,28 @@ context "Markup" do page = @wiki.page(name) output = page.formatted_data - assert_match /class="internal present"/, output + assert_match /class="internal present"/, output assert_match /href="\/wiki\/Bilbo-Baggins-\d"/, output assert_match /\>Bilbo Baggins \d\