Merge pull request #1499 from gollum/primer_breadcrumbs
Primer CSS breadcrumbs (related to #1394).
This commit is contained in:
@@ -20,18 +20,18 @@ module Precious
|
||||
def breadcrumb
|
||||
if @path
|
||||
path = Pathname.new(@path)
|
||||
breadcrumb = [%{<a href="#{overview_path}">Home</a>}]
|
||||
breadcrumb = [%{<nav aria-label="Breadcrumb"><ol><li class="breadcrumb-item"><a href="#{overview_path}">Home</a></li>}]
|
||||
path.descend do |crumb|
|
||||
title = crumb.basename
|
||||
|
||||
if title == path.basename
|
||||
breadcrumb << title
|
||||
breadcrumb << %{<li class="breadcrumb-item" aria-current="page">#{title}</li>}
|
||||
else
|
||||
breadcrumb << %{<a href="#{overview_path}/#{crumb}/">#{title}</a>}
|
||||
breadcrumb << %{<li class="breadcrumb-item"><a href="#{overview_path}/#{crumb}/">#{title}</a></li>}
|
||||
end
|
||||
end
|
||||
|
||||
breadcrumb.join(' / ')
|
||||
breadcrumb << %{</ol></nav>}
|
||||
breadcrumb.join("\n")
|
||||
else
|
||||
'Home'
|
||||
end
|
||||
|
||||
@@ -28,13 +28,14 @@ module Precious
|
||||
def breadcrumb
|
||||
path = Pathname.new(@page.url_path).parent
|
||||
return '' if path.to_s == '.'
|
||||
breadcrumb = []
|
||||
breadcrumb = [%{<nav aria-label="Breadcrumb"><ol>}]
|
||||
path.descend do |crumb|
|
||||
element = "#{crumb.basename}"
|
||||
next if element == @page.title
|
||||
breadcrumb << %{<a href="#{overview_path}/#{crumb}/">#{element}</a>}
|
||||
breadcrumb << %{<li class="breadcrumb-item"><a href="#{overview_path}/#{crumb}/">#{element}</a></li>}
|
||||
end
|
||||
breadcrumb.join(' / ') << ' /'
|
||||
breadcrumb << %{</ol></nav>}
|
||||
breadcrumb.join("\n")
|
||||
end
|
||||
|
||||
def content
|
||||
|
||||
@@ -41,7 +41,8 @@ context "Precious::Views::Overview" do
|
||||
test "breadcrumb" do
|
||||
@page.instance_variable_set("@path", "Mordor/Eye-Of-Sauron/Saruman")
|
||||
@page.instance_variable_set("@base_url", "")
|
||||
assert_equal '<a href="/gollum/overview">Home</a> / <a href="/gollum/overview/Mordor/">Mordor</a> / <a href="/gollum/overview/Mordor/Eye-Of-Sauron/">Eye-Of-Sauron</a> / Saruman', @page.breadcrumb
|
||||
$stderr.puts @page.breadcrumb.inspect
|
||||
assert_equal "<nav aria-label=\"Breadcrumb\"><ol><li class=\"breadcrumb-item\"><a href=\"/gollum/overview\">Home</a></li>\n<li class=\"breadcrumb-item\"><a href=\"/gollum/overview/Mordor/\">Mordor</a></li>\n<li class=\"breadcrumb-item\"><a href=\"/gollum/overview/Mordor/Eye-Of-Sauron/\">Eye-Of-Sauron</a></li>\n<li class=\"breadcrumb-item\" aria-current=\"page\">Saruman</li>\n</ol></nav>", @page.breadcrumb
|
||||
end
|
||||
|
||||
test "breadcrumb with no path" do
|
||||
|
||||
@@ -115,7 +115,8 @@ EOS
|
||||
@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/overview/subdir/">subdir</a> /'
|
||||
assert_equal @view.breadcrumb, "<nav aria-label=\"Breadcrumb\"><ol>\n<li class=\"breadcrumb-item\"><a href=\"/gollum/overview/subdir/\">subdir</a></li>\n</ol></nav>"
|
||||
|
||||
|
||||
# No breadcrumb on unnested page
|
||||
@wiki.write_page('BC Test 2', :markdown, 'Test', commit_details)
|
||||
|
||||
Reference in New Issue
Block a user