module Jekyll::Filters
module Generators
# Promotes select Dyndoc attributes to Jekyll front matter class DyndocPreprocessor < Generator def generate(site) dyndoc_converter = JEKYLL_MIN_VERSION_3 ? site.find_converter_instance(Jekyll::Converters::DyndocConverter) : site.getConverterImpl(Jekyll::Converters::DyndocConverter) dyndoc_converter.setup unless (page_attr_prefix = site.config['dyndoc_page_attribute_prefix']).empty? page_attr_prefix = %(#{page_attr_prefix}-) end page_attr_prefix_l = page_attr_prefix.length site.pages.each do |page| if dyndoc_converter.matches(page.ext) next unless (doc = dyndoc_converter.load_header(page.content)) page.data['title'] = doc.doctitle if doc.header? page.data['author'] = doc.author if doc.author unless (dyndoc_front_matter = doc.attributes .select {|name| name.start_with?(page_attr_prefix) } .map {|name, val| %(#{name[page_attr_prefix_l..-1]}: #{val}) }).empty? page.data.update(SafeYAML.load(dyndoc_front_matter * "\n")) end page.data['layout'] = 'default' unless page.data.key? 'layout' end end (JEKYLL_MIN_VERSION_3 ? site.posts.docs : site.posts).each do |post| if dyndoc_converter.matches(JEKYLL_MIN_VERSION_3 ? post.data['ext'] : post.ext) next unless (doc = dyndoc_converter.load_header(post.content)) post.data['title'] = doc.doctitle if doc.header? post.data['author'] = doc.author if doc.author post.data['date'] = DateTime.parse(doc.revdate).to_time if doc.attr? 'revdate' unless (dyndoc_front_matter = doc.attributes .select {|name| name.start_with?(page_attr_prefix) } .map {|name, val| %(#{name[page_attr_prefix_l..-1]}: #{val}) }).empty? post.data.update(SafeYAML.load(dyndoc_front_matter * "\n")) end post.data['layout'] = 'post' unless post.data.key? 'layout' end end end end
end
Public Instance Methods
dyndocify(input)
click to toggle source
Convert an Dyndoc string into HTML output.
input - The Dyndoc String to convert.
Returns the HTML formatted String.
# File lib/jekyll-dyndoc.rb, line 145 def dyndocify(input) site = @context.registers[:site] converter = JEKYLL_MIN_VERSION_3 ? site.find_converter_instance(Jekyll::Converters::DyndocConverter) : site.getConverterImpl(Jekyll::Converters::DyndocConverter) converter.convert(input) end