Fix breadcrumbs (#1387)

This commit is contained in:
Dawa Ometto
2019-05-18 14:42:42 +02:00
committed by GitHub
parent 17c574467f
commit e28a41bb8f
2 changed files with 23 additions and 3 deletions
+3 -3
View File
@@ -26,14 +26,14 @@ module Precious
end end
def breadcrumb def breadcrumb
path = Pathname.new(@page.url_path_title) path = Pathname.new(@page.url_path).parent
return '' if path.to_s == '.'
breadcrumb = [] breadcrumb = []
path.descend do |crumb| path.descend do |crumb|
element = "#{crumb.basename}" element = "#{crumb.basename}"
next if element == @page.title
breadcrumb << %{<a href="#{pages_path}/#{crumb}/">#{element}</a>} breadcrumb << %{<a href="#{pages_path}/#{crumb}/">#{element}</a>}
end end
breadcrumb.empty? ? "" : breadcrumb.join(" / ") << " /" breadcrumb.join(' / ') << ' /'
end end
def content def content
+20
View File
@@ -2,6 +2,7 @@
require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
require File.expand_path '../../lib/gollum/views/page', __FILE__ require File.expand_path '../../lib/gollum/views/page', __FILE__
context "Precious::Views::Page" do context "Precious::Views::Page" do
setup do setup do
examples = testpath "examples" examples = testpath "examples"
@@ -108,4 +109,23 @@ EOS
actual = @view.title actual = @view.title
assert_equal title, actual assert_equal title, actual
end end
test "breadcrumbs" do
@wiki.write_page('subdir/BC Test 1', :markdown, 'Test', commit_details)
page = @wiki.page('subdir/BC Test 1')
@view = Precious::Views::Page.new
@view.instance_variable_set :@page, page
@view.instance_variable_set :@content, page.formatted_data
assert_equal @view.breadcrumb, '<a href="/gollum/pages/subdir/">subdir</a> /'
# No breadcrumb on unnested page
@wiki.write_page('BC Test 2', :markdown, 'Test', commit_details)
page = @wiki.page('BC Test 2')
@view = Precious::Views::Page.new
@view.instance_variable_set :@page, page
@view.instance_variable_set :@content, page.formatted_data
assert_equal @view.breadcrumb, ''
end
end end