aboutsummaryrefslogtreecommitdiffhomepage
path: root/server-katex/filter.lua
diff options
context:
space:
mode:
Diffstat (limited to 'server-katex/filter.lua')
-rw-r--r--server-katex/filter.lua23
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