class JekyllReadmeIndex::Generator
Constants
- CLEANUP_KEY
- CONFIG_KEY
- ENABLED_KEY
- FRONTMATTER_KEY
- INDEX_REGEX
Attributes
site[RW]
Public Class Methods
new(site)
click to toggle source
# File lib/jekyll-readme-index/generator.rb, line 17 def initialize(site) @site = site end
Public Instance Methods
generate(site)
click to toggle source
# File lib/jekyll-readme-index/generator.rb, line 21 def generate(site) @site = site return if disabled? readmes.each do |readme| next unless should_be_index?(readme) site.pages << readme.to_page site.static_files.delete(readme) if cleanup? end if with_frontmatter? readmes_with_frontmatter.each do |readme| next unless should_be_index?(readme) readme.update_permalink end end end
Private Instance Methods
cleanup?()
click to toggle source
# File lib/jekyll-readme-index/generator.rb, line 85 def cleanup? option(CLEANUP_KEY) == true end
dir_has_index?(relative_path)
click to toggle source
Does the given directory have an index?
relative_path - the directory path relative to the site root
# File lib/jekyll-readme-index/generator.rb, line 62 def dir_has_index?(relative_path) relative_path << "/" unless relative_path.end_with? "/" regex = %r!^#{Regexp.escape(relative_path)}#{INDEX_REGEX}!i (site.pages + site.static_files).any? { |file| file.url =~ regex } end
disabled?()
click to toggle source
# File lib/jekyll-readme-index/generator.rb, line 81 def disabled? option(ENABLED_KEY) == false end
markdown_converter()
click to toggle source
# File lib/jekyll-readme-index/generator.rb, line 73 def markdown_converter @markdown_converter ||= site.find_converter_instance(Jekyll::Converters::Markdown) end
option(key)
click to toggle source
# File lib/jekyll-readme-index/generator.rb, line 77 def option(key) site.config[CONFIG_KEY] && site.config[CONFIG_KEY][key] end
readme_regex()
click to toggle source
Regexp to match a file path against to detect if the given file is a README
# File lib/jekyll-readme-index/generator.rb, line 69 def readme_regex @readme_regex ||= %r!/readme(#{Regexp.union(markdown_converter.extname_list)})$!i end
readmes()
click to toggle source
Returns an array of all READMEs as StaticFiles
# File lib/jekyll-readme-index/generator.rb, line 44 def readmes site.static_files.select { |file| file.relative_path =~ readme_regex } end
readmes_with_frontmatter()
click to toggle source
# File lib/jekyll-readme-index/generator.rb, line 48 def readmes_with_frontmatter site.pages.select { |file| ("/" + file.path) =~ readme_regex } end
should_be_index?(readme)
click to toggle source
Should the given readme be the containing directory's index?
# File lib/jekyll-readme-index/generator.rb, line 53 def should_be_index?(readme) return false unless readme !dir_has_index? File.dirname(readme.url) end
with_frontmatter?()
click to toggle source
# File lib/jekyll-readme-index/generator.rb, line 89 def with_frontmatter? option(FRONTMATTER_KEY) == true end