class JekyllFeed::Generator
Constants
- MINIFY_REGEX
Matches all whitespace that follows
1. A '>', which closes an XML tag or 2. A '}', which closes a Liquid tag
We will strip all of this whitespace to minify the template
Public Instance Methods
generate(site)
click to toggle source
Main plugin action, called by Jekyll-core
# File lib/jekyll-feed/generator.rb, line 9 def generate(site) @site = site return if file_exists?(feed_path) @site.pages << content_for_file(feed_path, feed_source_path) end
Private Instance Methods
content_for_file(file_path, file_source_path)
click to toggle source
Generates contents for a file
# File lib/jekyll-feed/generator.rb, line 47 def content_for_file(file_path, file_source_path) file = PageWithoutAFile.new(@site, __dir__, "", file_path) file.content = File.read(file_source_path).gsub(MINIFY_REGEX, "") file.data["layout"] = nil file.data["sitemap"] = false file.data["xsl"] = file_exists?("feed.xslt.xml") file.output file end
feed_path()
click to toggle source
Path to feed from config, or feed.xml for default
# File lib/jekyll-feed/generator.rb, line 24 def feed_path if @site.config["feed"] && @site.config["feed"]["path"] @site.config["feed"]["path"] else "feed.xml" end end
feed_source_path()
click to toggle source
Path to feed.xml template file
# File lib/jekyll-feed/generator.rb, line 33 def feed_source_path File.expand_path "feed.xml", __dir__ end
file_exists?(file_path)
click to toggle source
Checks if a file already exists in the site source
# File lib/jekyll-feed/generator.rb, line 38 def file_exists?(file_path) if @site.respond_to?(:in_source_dir) File.exist? @site.in_source_dir(file_path) else File.exist? Jekyll.sanitized_path(@site.source, file_path) end end