Class: Jekyll::Endless::TagPageGenerator

Inherits:
Generator
  • Object
show all
Defined in:
lib/jekyll-theme-endless/generate-tagpages.rb

Overview

TagPageGenerator is a subclass of Generator

Instance Method Summary collapse

Instance Method Details

#generate(site) ⇒ Object

A Generator needs to implement the generate method



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/jekyll-theme-endless/generate-tagpages.rb', line 38

def generate(site)
  Jekyll.logger.info("[INFO] Starting TagPage generation")
  # If a layout with the name `page-tag` exists
  if site.layouts.key? 'page-tag'
    Jekyll.logger.info("TagPageGenerator", "[INFO] 'page-tag' layout found")
    # The directory in which the files are to be created is configured in `site.tag_dir`.
    # If not, the directory `tags/` is used.
    dir = site.config['tag_dir'] || 'tags'
    Jekyll.logger.info("TagPageGenerator", "[INFO] Using tag directory: #{dir}")

    # For each tag in the tag-list:
    site.tags.each_key do |tag|
      # Create a page-object using TagPage and add it to the `site.pages` array
      site.pages << TagPage.new(site, site.source, File.join(dir, tag), tag)
      Jekyll.logger.debug("TagPageGenerator", "[DEBUG] TagPage created for tag: #{tag}")
    end

    Jekyll.logger.info("TagPageGenerator", "[INFO] All tags processed successfully")
  else
    Jekyll.logger.error("TagPageGenerator", "[ERROR] Could not find the layout 'page-tag'. Create a file '_layouts/page-tag.html' to fix this error. Skipping TagPage generation for now.")
  end
  Jekyll.logger.info("TagPageGenerator", "[INFO] TagPage generation finished")
end