return { CodeBlock = function(block) local label label = block.classes[1] local fname, errfname = os.tmpname(), os.tmpname() local cmd = "pygmentize -f html -O style=dracula,wrapcode,classprefix=py- -l %s %s 2>%s" do local _with_0 = io.open(fname, "w") _with_0:write(block.text) _with_0:close() end local lexer local _exp_0 = label if "moon" == _exp_0 or "moonscript" == _exp_0 then cmd = cmd .. " -x" lexer = "moonscript.py" else lexer = label or "text" end local f = io.popen(cmd:format(lexer, fname, errfname)) local out do local _with_0 = f:read("*a") f:close() out = _with_0 end if out == "" then local e = io.open(errfname, "r") local err do local _with_0 = e:read("*a") e:close() err = _with_0 end assert(err:match("Error: no lexer for alias '" .. tostring(label) .. "' found"), "Failed to parse pygmentize result, is pygments installed?") return block else return pandoc.RawBlock("html", out) end end }