Sha256: 1d34c3f6f1ea3c23aa6f2d651ff006f507bf7765cef162854e3bbf84c625cc8a

Contents?: true

Size: 1.15 KB

Versions: 9

Compression:

Stored size: 1.15 KB

Contents

module JekyllThemeGuidesMbland
  class GeneratedPages
    DEFAULT_LAYOUT = 'jekyll_theme_guides_mbland_generated_home_redirect'.freeze

    def self.generate_pages_from_navigation_data(site)
      layout = site.config['generate_nodes']
      return if layout.nil? || layout == false
      layout = DEFAULT_LAYOUT if layout == true
      nav_data = site.config['navigation']
      generate_pages_from_generated_nodes(site, layout, nav_data, '/')
    end

    def self.generate_pages_from_generated_nodes(site, layout, nav_data,
      parent_url)
      (nav_data || []).select { |nav| nav['generated'] }.each do |nav|
        site.pages << GeneratedPage.new(site, layout, nav, parent_url)
        children = nav['children']
        next_url = parent_url + nav['url']
        generate_pages_from_generated_nodes(site, layout, children, next_url)
      end
    end
  end

  class GeneratedPage < ::Jekyll::Page
    def initialize(site, layout, nav, parent_url)
      @site = site
      @name = 'index.html'

      process(@name)
      @data = {}
      data['title'] = nav['text']
      data['permalink'] = parent_url + nav['url']
      data['layout'] = layout
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
jekyll-theme-guides-mbland-1.0.5 lib/jekyll-theme-guides-mbland/generated_pages.rb
jekyll-theme-guides-mbland-1.0.4 lib/jekyll-theme-guides-mbland/generated_pages.rb
jekyll-theme-guides-mbland-1.0.3 lib/jekyll-theme-guides-mbland/generated_pages.rb
jekyll-theme-guides-mbland-1.0.2 lib/jekyll-theme-guides-mbland/generated_pages.rb
jekyll-theme-guides-mbland-1.0.1 lib/jekyll-theme-guides-mbland/generated_pages.rb
jekyll-theme-guides-mbland-1.0.0 lib/jekyll-theme-guides-mbland/generated_pages.rb
jekyll-theme-guides-mbland-0.2.3 lib/jekyll-theme-guides-mbland/generated_pages.rb
jekyll-theme-guides-mbland-0.2.2 lib/jekyll-theme-guides-mbland/generated_pages.rb
jekyll-theme-guides-mbland-0.2.1 lib/jekyll-theme-guides-mbland/generated_pages.rb