Sha256: 08d2dc49e78e1b3522e0ea875f97c2850ec9a9f28b356dba24f6284568a3cef3

Contents?: true

Size: 1.15 KB

Versions: 16

Compression:

Stored size: 1.15 KB

Contents

require_relative './layouts'

module GuidesStyle18F
  class GeneratedPages
    DEFAULT_LAYOUT = 'guides_style_18f_generated_home_redirect'

    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

16 entries across 16 versions & 1 rubygems

Version Path
guides_style_18f-1.0.6 lib/guides_style_18f/generated_pages.rb
guides_style_18f-1.0.4 lib/guides_style_18f/generated_pages.rb
guides_style_18f-1.0.3 lib/guides_style_18f/generated_pages.rb
guides_style_18f-1.0.2 lib/guides_style_18f/generated_pages.rb
guides_style_18f-1.0.1 lib/guides_style_18f/generated_pages.rb
guides_style_18f-1.0.0 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.9 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.8 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.7 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.6 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.5 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.4 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.3 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.2 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.1 lib/guides_style_18f/generated_pages.rb
guides_style_18f-0.4.0 lib/guides_style_18f/generated_pages.rb