Module: Jekyll::MarkdownOutput
- Defined in:
- lib/jekyll-markdown-output/version.rb,
lib/jekyll-markdown-output/generator.rb,
lib/jekyll-markdown-output/markdown_page.rb
Defined Under Namespace
Classes: MarkdownPage
Constant Summary collapse
- VERSION =
"0.1.1"- DEFAULTS =
{ "enabled" => true, "collections" => ["posts"], "pages" => true, "page_extensions" => [".md", ".markdown"], "extension" => ".md", "include_title_heading" => true, "frontmatter_keys" => MarkdownPage::DEFAULT_FRONTMATTER_KEYS, }.freeze
Class Method Summary collapse
Class Method Details
.config_for(site) ⇒ Object
17 18 19 |
# File 'lib/jekyll-markdown-output/generator.rb', line 17 def self.config_for(site) DEFAULTS.merge(site.config["markdown_output"] || {}) end |
.write_all(site) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/jekyll-markdown-output/generator.rb', line 21 def self.write_all(site) config = config_for(site) return unless config["enabled"] written = 0 Array(config["collections"]).each do |coll_name| collection = site.collections[coll_name.to_s] unless collection Jekyll.logger.warn("MarkdownOutput:", "collection '#{coll_name}' not found, skipping") next end collection.docs.each { |doc| written += 1 if write_one(site, doc, config) } end if config["pages"] exts = Array(config["page_extensions"]).map(&:downcase) site.pages.each do |page| next unless exts.include?(File.extname(page.path).downcase) written += 1 if write_one(site, page, config) end end Jekyll.logger.info("MarkdownOutput:", "wrote #{written} markdown file(s)") end |
.write_one(site, source, config) ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/jekyll-markdown-output/generator.rb', line 47 def self.write_one(site, source, config) return false if source.data["markdown_output"] == false page = MarkdownPage.new(site, source, config) path = page.destination FileUtils.mkdir_p(File.dirname(path)) File.write(path, page.to_s) true end |