Class: Jekyll::AwesomeNav::NavigationResult

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/awesome_nav/navigation_result.rb

Instance Method Summary collapse

Constructor Details

#initialize(tree:, root_dir:, root_page:, nav_map:) ⇒ NavigationResult

Returns a new instance of NavigationResult.



6
7
8
9
10
11
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 6

def initialize(tree:, root_dir:, root_page:, nav_map:)
  @tree = tree
  @root_dir = root_dir
  @root_page = root_page
  @nav_map = nav_map
end

Instance Method Details

#annotated_tree_for(page_url) ⇒ Object



17
18
19
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 17

def annotated_tree_for(page_url)
  annotate_current(serialized_tree, Utils.normalize_url(page_url)).first
end


47
48
49
50
51
52
53
54
55
56
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 47

def breadcrumbs_for(page)
  page_url = Utils.normalize_url(page.url)
  trail = find_trail(internal_serialized_tree, page_url)
  return root_breadcrumb(page) if trail.nil? && Utils.source_dir_for(page) == @root_dir && Utils.index_page?(page)
  return [] unless trail

  breadcrumbs = trail.filter_map { |item| breadcrumb_item_for(item) }

  prepend_root_breadcrumb(breadcrumbs)
end

#local_nav_for(page_dir) ⇒ Object



29
30
31
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 29

def local_nav_for(page_dir)
  serialized_local_nav_map.fetch(page_dir, [])
end


33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 33

def nav_dir_for(page_dir)
  current = page_dir

  loop do
    return current if @nav_map.key?(current)
    return @root_dir if current == @root_dir
    break if current.empty?

    current = Utils.parent_dir(current)
  end

  @root_dir
end

#nav_entry_for(page_url) ⇒ Object



58
59
60
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 58

def nav_entry_for(page_url)
  neighbor_map[page_url]
end

#serialized_local_nav_mapObject



21
22
23
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 21

def serialized_local_nav_map
  @serialized_local_nav_map ||= Serializer.serialize_map(local_nav_nodes)
end

#serialized_nav_filesObject



25
26
27
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 25

def serialized_nav_files
  @serialized_nav_files ||= Serializer.serialize_map(@nav_map)
end

#serialized_treeObject



13
14
15
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 13

def serialized_tree
  @serialized_tree ||= Serializer.serialize_tree(@tree)
end