class Trekyll::NavigationManager
Prefix definition:
[#] - Container # - Sub page #[#] - Sub page conainer ## - Sub sub page ##[#] - Sub sub container page ### - Sub sub sub page [/#] - Container with ommited page url (links to homepage when clicked) [!] - Ommited page from navigation
Constants
- CONFIGURABLE_PROPERTIES
Public Class Methods
new(dir="_data")
click to toggle source
constructor *( defoult navigation location _data dir)
# File lib/trekyll/navigation_manager.rb, line 39 def initialize(dir="_data") @nav_dir_name = dir end
Public Instance Methods
add_page(page)
click to toggle source
Add page to nav.yml
# File lib/trekyll/navigation_manager.rb, line 44 def add_page(page) # get page name @page_name = page # create a file name (remove special chars and convert spaces to "_") @page_file_name = @page_name.sanitize_as_page_name File.open( @nav_dir_name + '/nav.yml', 'a') do |f| # Get substring prefix ##[#] | MyPage_name i = @page_name.index(/[a-zA-Z\p{L}]/) prefix = @page_name[0,i] c = prefix.count("#") # Define different spacing for first # and odd numbr of # (hashes) if c == 1 c = 0 elsif c % 2 != 0 c = c+1 end if prefix.include?("[#]") f.puts "- title: \"#{@page_name.sub!(prefix,'')}\" ".indent(c) f.puts " href: /#{@page_file_name}/".indent(c) f.puts " subcategories:".indent(c) @page_type = "page" elsif prefix.include?("[/#]") f.puts "- title: \"#{@page_name.sub!(prefix,'')}\" ".indent(c) f.puts " subcategories:".indent(c) @page_type = "page" elsif prefix.include?("#") f.puts "- title: \"#{@page_name.sub!(prefix,'')}\" ".indent(c+2) f.puts " href: /#{@page_file_name}/".indent(c+2) @page_type = "subpage" elsif @page_name.start_with?("[!]") @page_name.sub!(prefix,"") else f.puts "- title: \"#{page_name}\" " f.puts " href: /#{page_file_name}/" @page_type = "page" end end end