miti.sh/pygments.moon

31 lines
935 B
Plaintext

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