24 lines
691 B
Plaintext
24 lines
691 B
Plaintext
class PandocRenderer extends require "sitegen.renderers.markdown"
|
|
unescape_cosmo = @unescape_cosmo
|
|
escape_cosmo = @escape_cosmo
|
|
|
|
command: "pandoc"
|
|
|
|
render: (page, md_source) =>
|
|
md_source = page\pipe "renderer.markdown.pre_render", md_source
|
|
md_source, escapes = escape_cosmo md_source
|
|
|
|
markup_filename = os.tmpname!
|
|
input_handle = io.popen @command .. " > " .. markup_filename, "w"
|
|
input_handle\write md_source
|
|
input_handle\close!
|
|
|
|
output_handle = io.open markup_filename, "r"
|
|
result = output_handle\read "*a"
|
|
output_handle\close!
|
|
|
|
html_source = assert result
|
|
html_source = unescape_cosmo html_source, escapes
|
|
|
|
super page, html_source
|