Class: Jekyll::AwesomeNav::NavigationResult
- Inherits:
-
Object
- Object
- Jekyll::AwesomeNav::NavigationResult
- Defined in:
- lib/jekyll/awesome_nav/navigation_result.rb
Instance Method Summary collapse
- #breadcrumbs_for(page) ⇒ Object
-
#initialize(tree:, root_dir:, root_page:, nav_map:) ⇒ NavigationResult
constructor
A new instance of NavigationResult.
- #local_nav_for(page_dir) ⇒ Object
- #nav_dir_for(page_dir) ⇒ Object
- #nav_entry_for(page_url) ⇒ Object
- #serialized_local_nav_map ⇒ Object
- #serialized_nav_files ⇒ Object
- #serialized_tree ⇒ Object
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
#breadcrumbs_for(page) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 43 def (page) page_url = Utils.normalize_url(page.url) trail = find_trail(serialized_tree, page_url) return (page) if trail.nil? && Utils.source_dir_for(page) == @root_dir && Utils.index_page?(page) return [] unless trail = trail.filter_map do |item| next if item["title"].to_s.empty? crumb = { "title" => item["title"] } crumb["url"] = item["url"] if item["url"] crumb end () end |
#local_nav_for(page_dir) ⇒ Object
25 26 27 |
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 25 def local_nav_for(page_dir) serialized_local_nav_map.fetch(page_dir, []) end |
#nav_dir_for(page_dir) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 29 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
60 61 62 |
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 60 def nav_entry_for(page_url) neighbor_map[page_url] end |
#serialized_local_nav_map ⇒ Object
17 18 19 |
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 17 def serialized_local_nav_map @serialized_local_nav_map ||= Serializer.serialize_map(local_nav_nodes) end |
#serialized_nav_files ⇒ Object
21 22 23 |
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 21 def serialized_nav_files @serialized_nav_files ||= Serializer.serialize_map(@nav_map) end |
#serialized_tree ⇒ Object
13 14 15 |
# File 'lib/jekyll/awesome_nav/navigation_result.rb', line 13 def serialized_tree @serialized_tree ||= Serializer.serialize_tree(@tree) end |