Class: Trekyll::NavigationManager
- Inherits:
-
Object
- Object
- Trekyll::NavigationManager
- Defined in:
- lib/trekyll/navigation_manager.rb
Overview
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
Constant Summary collapse
- CONFIGURABLE_PROPERTIES =
[ :page_name, :page_type, :nav_dir_name, :page_file_name ]
Instance Method Summary collapse
-
#add_page(page) ⇒ Object
Add page to nav.yml.
-
#initialize(dir = "_data") ⇒ NavigationManager
constructor
constructor *( defoult navigation location _data dir).
Constructor Details
#initialize(dir = "_data") ⇒ NavigationManager
constructor *( defoult navigation location _data dir)
39 40 41 |
# File 'lib/trekyll/navigation_manager.rb', line 39 def initialize(dir="_data") @nav_dir_name = dir end |
Instance Method Details
#add_page(page) ⇒ Object
Add page to nav.yml
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# 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]/) 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 |