diff options
Diffstat (limited to 'server-katex/filter.lua')
-rw-r--r-- | server-katex/filter.lua | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/server-katex/filter.lua b/server-katex/filter.lua new file mode 100644 index 0000000..1010217 --- /dev/null +++ b/server-katex/filter.lua @@ -0,0 +1,23 @@ +function Pandoc(doc) + local tmp_name = os.tmpname() + local math = assert(io.popen("deno run server-katex/math.ts > " .. tmp_name, "w")) + doc:walk({ + Math = function(el) + if el.mathtype == 'DisplayMath' then + assert(math:write("d" .. el.text:gsub("\n", " ") .. "\n")) + else + assert(math:write("i" .. el.text:gsub("\n", " ") .. "\n")) + end + end + }) + math:close() + local tmp = assert(io.open(tmp_name, "r")) + doc = doc:walk({ + Math = function(el) + return pandoc.RawInline(FORMAT, tmp:read()) + end + }) + tmp:close() + os.remove(tmp_name) + return doc +end |