Class: JekyllOpenSdgPlugins::CreatePages
- Inherits:
-
Jekyll::Generator
- Object
- Jekyll::Generator
- JekyllOpenSdgPlugins::CreatePages
- Defined in:
- lib/jekyll-open-sdg-plugins/create_pages.rb
Instance Method Summary collapse
Instance Method Details
#generate(site) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 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 |
# File 'lib/jekyll-open-sdg-plugins/create_pages.rb', line 8 def generate(site) # If site.create_pages is set, create the 4 required pages. These include: # - the home page: / # - the indicators json page: /indicators.json # - the search results page: /search # - the reporting status page: /reporting-status # # These can be overridden though, with a create_pages.pages setting in # _config.yml, like so: # # create_pages: # pages: # - folder: '' # layout: frontpage # - filename: my-json-file.json # folder: my-subfolder # layout: indicator-json # # Note the optional "filename" setting for when the page needs a specific # filename (as opposed to being "index.html" inside a named folder). # # To use the default 4 pages, simply put: # # create_pages: true if site.config['languages'] and site.config['create_pages'] default_pages = [ { 'folder' => '/', 'layout' => 'frontpage' }, { 'folder' => '/reporting-status', 'layout' => 'reportingstatus' }, { 'filename' => 'indicators.json', 'folder' => '/', 'layout' => 'indicator-json', }, { 'folder' => '/search', 'layout' => 'search' } ] pages = default_pages if site.config['create_pages'].is_a?(Hash) and site.config['create_pages'].key?('pages') pages = site.config['create_pages']['pages'] end # Loop through the languages. site.config['languages'].each_with_index do |language, index| # Loop through the pages. pages.each do |page| # Add the language subfolder for all except the default (first) language. dir = index == 0 ? page['folder'] : File.join(language, page['folder']) # Create the page. site.pages << OpenSdgPage.new(site, site.source, dir, page, language) end end end end |