return { CodeBlock = function(block) local fname = os.tmpname() do local _with_0 = io.open(fname, "w") _with_0:write(block.text) _with_0:close() end local cmd = "pygmentize -f html -O style=dracula,wrapcode,classprefix=py- -l %s %s" if block.classes[1] == "moon" or block.classes[1] == "moonscript" then local p = io.popen((cmd .. " -x"):format("moonscript.py", fname)) local out = p:read("*a") p:close() return pandoc.RawBlock("html", out) else if block.classes[1] == nil or block.classes[1] == "heex" then if block.classes[1] == nil then local cb = pandoc.CodeBlock(block.text, { class = "sourceCode" }) return pandoc.Div(cb, { class = "sourceCode" }) else return block end else local status, handle_or_error = pcall(function() return io.popen((cmd):format(block.classes[1], fname)) end) local sout = handle_or_error:read("*a") if sout:len() == 0 then local cb = pandoc.CodeBlock(block.text, { class = "sourceCode" }) return pandoc.Div(cb, { class = "sourceCode" }) else return pandoc.RawBlock("html", sout) end end end end }