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