class Blogdown::Publisher
Attributes
markdown[RW]
renderer[RW]
Public Class Methods
new(root)
click to toggle source
# File lib/blogdown/publisher.rb, line 7 def initialize root @pipeline=Blogdown::FilePipeline.new root @base=root @output_stack={} @renderer=Redcarpet::Render::HTML.new(render_options) @markdown=Redcarpet::Markdown.new(@renderer, markdown_options) end
Public Instance Methods
compose()
click to toggle source
# File lib/blogdown/publisher.rb, line 15 def compose if @pipeline.stack.empty? raise IOError, "No file to compose" else @pipeline.stack.each do |file| if file.file? puts "processing #{file.to_s}" htm=transform(file.read) @output_stack[valid_id(file)]=htm puts "done" end end end @output_stack end
markdown_options()
click to toggle source
# File lib/blogdown/publisher.rb, line 44 def markdown_options {:auto_link=>true} end
render_options()
click to toggle source
# File lib/blogdown/publisher.rb, line 40 def render_options {:with_toc_data=>false, :hard_warp=>true, :prettify=>true} end
transform(txt)
click to toggle source
# File lib/blogdown/publisher.rb, line 32 def transform(txt) self.markdown.render(GitHub::Markdown.render_gfm(txt)) end
valid_id(v)
click to toggle source
# File lib/blogdown/publisher.rb, line 35 def valid_id(v) value=v.basename.to_s.gsub(/^*.([a-z]|[A-Z]){2,}$/,"") value=value.gsub(" ","-") end