class Overrides::Generator

Public Instance Methods

configure_page(page, override_directory, site) click to toggle source
# File lib/jekyll/overrides.rb, line 35
def configure_page(page, override_directory, site)
    override_file = File.join(override_directory, page.path)
    if File.exists?(override_file)
        override_content = File.read(override_file)

        # Lets merge the old page data with any overrides
        matches = Jekyll::Document::YAML_FRONT_MATTER_REGEXP.match(override_content)
        if matches[0]
            page.data = page.data.merge(SafeYAML.load(matches[0]))
        end

        page.content = override_content.gsub(matches[0], '')
    end

    return page
end
generate(site) click to toggle source
# File lib/jekyll/overrides.rb, line 18
def generate(site)
    return if not override_directory = site.config['overrides']

    # Let's gather pages that exist in our override directory, in case
    # they aren't originally defined in our source directory`
    Dir["#{override_directory}/**/*.{md,html}"].each do |path|
        site.pages << OverridePage.new(
            site,
            override_directory.gsub(/\/$/, '') + '/',
            '',
            '/' + path.gsub(override_directory, '').gsub(/^\//, '')
        )
    end

    site.pages.map { | page | configure_page(page, override_directory, site) }
end