WIP: Syntax highlight colors

This commit is contained in:
2025-05-26 09:12:57 -07:00
parent 67cf51da09
commit 88c9168b39
7 changed files with 44 additions and 26 deletions

View File

@@ -10,32 +10,30 @@ _prepare_command = (cmd, ...) ->
args = table.concat args, " "
"#{cmd} #{args}"
write_exec = (input, cmd, ...) ->
handle = io.popen _prepare_command(cmd, ...), "w"
with handle\write input
handle\close!
convert = =>
(md_source) ->
filename = os.tmpname!
write_exec md_source, @cmd, filename
Path.read_file filename
-- fname = os.tmpname!
-- with io.open fname, "w"
-- \write md_source
-- \close!
--
-- p = io.popen (@cmd)\format lang, fname
-- out = p\read"*a"
-- out
-- config command like this in site.moon:
-- require("renderers.markdown").cmd = "pandoc --mathjax >"
class PandocRenderer extends require "sitegen.renderers.markdown"
unescape_cosmo = @unescape_cosmo
escape_cosmo = @escape_cosmo
pandoc = convert @
pandoc: (md_source) =>
fname = os.tmpname!
with io.popen _prepare_command(@@cmd, fname), "w"
\write md_source
\close!
p = io.open fname
out = p\read"*a"
if mat = out\match('<div class="highlight"><pre>(.-)\n?</pre></div>')
rep = '<div class="sourceCode"><pre class="sourceCode ' .. 'moonscript"><code class="sourceCode ' .. 'moonscript">' .. mat .. '</code></pre></div>'
out = out\gsub('<div class="highlight"><pre>(.-)\n?</pre></div>', rep)
out
-- get rid of the div and pre inserted by pygments
-- assert out\match('^<div class="highlight"><pre>(.-)\n?</pre></div>'),
-- "Failed to parse pygmentize result, is pygments installed?"
cmd: "pandoc >"
@@ -43,7 +41,7 @@ class PandocRenderer extends require "sitegen.renderers.markdown"
md_source = page\pipe "renderer.markdown.pre_render", md_source
md_source, escapes = escape_cosmo md_source
html_source = assert pandoc md_source
html_source = assert @pandoc md_source
html_source = unescape_cosmo html_source, escapes
super page, html_source