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