class JekyllInfo::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-info/generator.rb, line 9
def generate(site)
  @site = site
  return if file_exists?(template_path)
  @site.pages << content_for_file(template_path, template_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-info/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.output
  file
end
file_exists?(file_path) click to toggle source

Checks if a file already exists in the site source

# File lib/jekyll-info/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
template_path() click to toggle source

Path to jekyll-info from config, or jekyll-info.html for default

# File lib/jekyll-info/generator.rb, line 24
def template_path
  if @site.config["info"] && @site.config["info"]["path"]
    @site.config["info"]["path"]
  else
    "jekyll-info.html"
  end
end
template_source_path() click to toggle source

Path to jekyll-info.html template file

# File lib/jekyll-info/generator.rb, line 33
def template_source_path
  File.expand_path "jekyll-info.html", __dir__
end