Module: Nanoc3::Helpers::Breadcrumbs

Defined in:
lib/nanoc3/helpers/breadcrumbs.rb

Overview

Provides support for breadcrumbs, which allow the user to go up in the page hierarchy.

Instance Method Summary (collapse)

Instance Method Details



28
29
30
31
32
33
34
35
36
# File 'lib/nanoc3/helpers/breadcrumbs.rb', line 28

def breadcrumbs_for_identifier(identifier)
  @breadcrumbs_cache ||= {}
  @breadcrumbs_cache[identifier] ||= begin
    head = (identifier == '/' ? [] :  breadcrumbs_for_identifier(identifier.sub(/[^\/]+\/$/, '')) )
    tail = [ item_with_identifier(identifier) ]

    head + tail
  end
end

Creates a breadcrumb trail leading from the current item to its parent, to its parent’s parent, etc, until the root item is reached. This function does not require that each intermediate item exist; for example, if there is no /foo/ item, breadcrumbs for a /foo/bar/ item will contain a nil element.

with the item itself

Returns:

  • (Array)

    The breadcrumbs, starting with the root item and ending



17
18
19
# File 'lib/nanoc3/helpers/breadcrumbs.rb', line 17

def breadcrumbs_trail
  breadcrumbs_for_identifier(@item.identifier)
end

- (Object) item_with_identifier(identifier)



21
22
23
24
25
26
# File 'lib/nanoc3/helpers/breadcrumbs.rb', line 21

def item_with_identifier(identifier)
  @identifier_cache ||= {}
  @identifier_cache[identifier] ||= begin
    @items.find { |i| i.identifier == identifier }
  end
end