jekyll-optional-front-matter-0.3.2/0000755000004100000410000000000013562101026017275 5ustar www-datawww-datajekyll-optional-front-matter-0.3.2/jekyll-optional-front-matter.gemspec0000644000004100000410000000363113562101026026402 0ustar www-datawww-data######################################################### # This file has been automatically generated by gem2tgz # ######################################################### # -*- encoding: utf-8 -*- # stub: jekyll-optional-front-matter 0.3.2 ruby lib Gem::Specification.new do |s| s.name = "jekyll-optional-front-matter".freeze s.version = "0.3.2" s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= s.require_paths = ["lib".freeze] s.authors = ["Ben Balter".freeze] s.date = "2019-10-23" s.email = ["ben.balter@github.com".freeze] s.files = ["lib/jekyll-optional-front-matter.rb".freeze, "lib/jekyll-optional-front-matter/generator.rb".freeze, "lib/jekyll-optional-front-matter/version.rb".freeze] s.homepage = "https://github.com/benbalter/jekyll-optional-front-matter".freeze s.licenses = ["MIT".freeze] s.rubygems_version = "2.5.2.1".freeze s.summary = "A Jekyll plugin to make front matter optional for Markdown files".freeze if s.respond_to? :specification_version then s.specification_version = 4 if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then s.add_runtime_dependency(%q.freeze, ["< 5.0", ">= 3.0"]) s.add_development_dependency(%q.freeze, ["~> 3.5"]) s.add_development_dependency(%q.freeze, ["~> 0.71"]) s.add_development_dependency(%q.freeze, ["~> 0.10"]) else s.add_dependency(%q.freeze, ["< 5.0", ">= 3.0"]) s.add_dependency(%q.freeze, ["~> 3.5"]) s.add_dependency(%q.freeze, ["~> 0.71"]) s.add_dependency(%q.freeze, ["~> 0.10"]) end else s.add_dependency(%q.freeze, ["< 5.0", ">= 3.0"]) s.add_dependency(%q.freeze, ["~> 3.5"]) s.add_dependency(%q.freeze, ["~> 0.71"]) s.add_dependency(%q.freeze, ["~> 0.10"]) end end jekyll-optional-front-matter-0.3.2/lib/0000755000004100000410000000000013562101026020043 5ustar www-datawww-datajekyll-optional-front-matter-0.3.2/lib/jekyll-optional-front-matter/0000755000004100000410000000000013562101026025600 5ustar www-datawww-datajekyll-optional-front-matter-0.3.2/lib/jekyll-optional-front-matter/version.rb0000644000004100000410000000013013562101026027604 0ustar www-datawww-data# frozen_string_literal: true module JekyllOptionalFrontMatter VERSION = "0.3.2" end jekyll-optional-front-matter-0.3.2/lib/jekyll-optional-front-matter/generator.rb0000644000004100000410000000453113562101026030116 0ustar www-datawww-data# frozen_string_literal: true module JekyllOptionalFrontMatter class Generator < Jekyll::Generator attr_accessor :site safe true priority :normal CONFIG_KEY = "optional_front_matter" ENABLED_KEY = "enabled" CLEANUP_KEY = "remove_originals" def initialize(site) @site = site end def generate(site) @site = site return if disabled? site.pages.concat(pages_to_add) site.static_files -= static_files_to_remove if cleanup? end private # An array of Jekyll::Pages to add, *excluding* blacklisted files def pages_to_add pages.reject { |page| blacklisted?(page) } end # An array of Jekyll::StaticFile's, *excluding* blacklisted files def static_files_to_remove markdown_files.reject { |page| blacklisted?(page) } end # An array of potential Jekyll::Pages to add, *including* blacklisted files def pages markdown_files.map { |static_file| page_from_static_file(static_file) } end # An array of Jekyll::StaticFile's with a site-defined markdown extension def markdown_files site.static_files.select { |file| markdown_converter.matches(file.extname) } end # Given a Jekyll::StaticFile, returns the file as a Jekyll::Page def page_from_static_file(static_file) base = static_file.instance_variable_get("@base") dir = static_file.instance_variable_get("@dir") name = static_file.instance_variable_get("@name") Jekyll::Page.new(site, base, dir, name) end # Does the given Jekyll::Page match our filename blacklist? def blacklisted?(page) return false if whitelisted?(page) FILENAME_BLACKLIST.include?(page.basename.upcase) end def whitelisted?(page) return false unless site.config["include"].is_a? Array entry_filter.included?(page.relative_path) end def markdown_converter @markdown_converter ||= site.find_converter_instance(Jekyll::Converters::Markdown) end def entry_filter @entry_filter ||= Jekyll::EntryFilter.new(site) end def option(key) site.config[CONFIG_KEY] && site.config[CONFIG_KEY][key] end def disabled? option(ENABLED_KEY) == false || site.config["require_front_matter"] end def cleanup? option(CLEANUP_KEY) == true || site.config["require_front_matter"] end end end jekyll-optional-front-matter-0.3.2/lib/jekyll-optional-front-matter.rb0000644000004100000410000000102113562101026026117 0ustar www-datawww-data# frozen_string_literal: true require "jekyll" require "jekyll-optional-front-matter/generator" module JekyllOptionalFrontMatter # Case-insensitive array of filenames to exclude. All files must first # match the config-defined list of markdown extensions. If you'd like one # of these files included in your site, simply add YAML front matter to it. FILENAME_BLACKLIST = %w( README LICENSE LICENCE COPYING CODE_OF_CONDUCT CONTRIBUTING ISSUE_TEMPLATE PULL_REQUEST_TEMPLATE ).freeze end