class Tilt::PandocTemplate

pandoc.org/
Pandoc markdown implementation. See:

def allows_script?

def allows_script?
  false
end

def evaluate(scope, locals, &block)

def evaluate(scope, locals, &block)
  @output ||= @engine.to_html.strip
end

def pandoc_options

Leave other hash keys untouched
Remove hash keys with value false
Replace hash keys with value true with symbol for key
Map tilt options to pandoc options
turn options hash into an array
def pandoc_options
  options.reduce([]) do |sum, (k,v)|
    case v
    when true
      sum << (tilt_to_pandoc_mapping[k] || k)
    when false
      sum
    else
      sum << { k => v }
    end
  end
end

def prepare

def prepare
  @engine = PandocRuby.new(data, *pandoc_options)
  @output = nil
end

def tilt_to_pandoc_mapping

def tilt_to_pandoc_mapping
  { :smartypants => :smart,
    :escape_html => { :f => 'markdown-raw_html' },
    :commonmark => { :f => 'commonmark' },
    :markdown_strict => { :f => 'markdown_strict' }
  }
end