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