diff --git a/lib/gollum/frontend/app.rb b/lib/gollum/frontend/app.rb
index 267580a8..ad903bfd 100644
--- a/lib/gollum/frontend/app.rb
+++ b/lib/gollum/frontend/app.rb
@@ -62,7 +62,7 @@ module Precious
end
post '/create/:name' do
- name = params[:name]
+ name = params[:page]
wiki = Gollum::Wiki.new($path)
format = params[:format].intern
diff --git a/lib/gollum/markup.rb b/lib/gollum/markup.rb
index cd15e17e..5deb059b 100644
--- a/lib/gollum/markup.rb
+++ b/lib/gollum/markup.rb
@@ -212,8 +212,14 @@ module Gollum
if name =~ %r{^https?://} && parts[1].nil?
%{#{name}}
else
- link = ::File.join(@wiki.base_path, cname)
- presence = @wiki.page(cname) ? "present" : "absent"
+ if page = @wiki.page(cname)
+ pname = page.name.split('.')[0..-2].join('.')
+ link = ::File.join(@wiki.base_path, Page.cname(pname))
+ presence = "present"
+ else
+ link = ::File.join(@wiki.base_path, cname)
+ presence = "absent"
+ end
%{#{name}}
end
end
diff --git a/lib/gollum/page.rb b/lib/gollum/page.rb
index ed7f0462..0138902c 100644
--- a/lib/gollum/page.rb
+++ b/lib/gollum/page.rb
@@ -271,7 +271,7 @@ module Gollum
# Returns a Boolean.
def page_match(name, filename)
if match = self.class.valid_filename?(filename)
- Page.cname(name) == Page.cname(match)
+ Page.cname(name).downcase == Page.cname(match).downcase
else
false
end
diff --git a/test/test_page.rb b/test/test_page.rb
index 6ceec2b3..d4fc207d 100644
--- a/test/test_page.rb
+++ b/test/test_page.rb
@@ -21,6 +21,10 @@ context "Page" do
assert_equal @wiki.repo.commits.first.id, page.version.id
end
+ test "get existing page case insensitive" do
+ assert_equal @wiki.page('Bilbo Baggins').path, @wiki.page('bilbo baggins').path
+ end
+
test "get nested page" do
page = @wiki.page('Eye Of Sauron')
assert_equal 'Mordor/Eye-Of-Sauron.md', page.path