aboutsummaryrefslogtreecommitdiff
path: root/pandoc
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2026-10-04 15:41:41 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2026-10-04 15:41:41 +0200
commitfd1475aaec33e717a3721679008bc42bb96d0998 (patch)
tree6036f0b86e0aa5bdd1837c861749ef3bf6e1d395 /pandoc
parentd3a3ad033eca9229b9df1cea6f4595b78b7b462b (diff)
downloadunterricht-fd1475aaec33e717a3721679008bc42bb96d0998.tar.gz
unterricht-fd1475aaec33e717a3721679008bc42bb96d0998.zip
pandoc allow markdown in LaTex environments
TODO: pass arguments to the LaTeX environments
Diffstat (limited to 'pandoc')
-rw-r--r--pandoc/filters/div-class-to-env.lua31
1 files changed, 31 insertions, 0 deletions
diff --git a/pandoc/filters/div-class-to-env.lua b/pandoc/filters/div-class-to-env.lua
new file mode 100644
index 00000000..1a87777b
--- /dev/null
+++ b/pandoc/filters/div-class-to-env.lua
@@ -0,0 +1,31 @@
+--- div-class-to-env.lua – filter to convert classes to LaTeX environments
+---
+--- Copyright: © 2026 Florian Fischer
+--- License: MIT – see LICENSE file for details
+
+if FORMAT:match('beamer') then
+ function Div(d)
+ -- ignore code blocks which are not of class "env".
+ if not d.classes:includes 'env' then
+ return
+ end
+
+ local env
+ for _, v in ipairs(d.classes) do
+ if v ~= 'env' then
+ env = v
+ break
+ end
+ end
+
+ if not env then
+ return
+ end
+
+ return {
+ pandoc.RawInline('latex', '\\begin{'..env..'}'),
+ d,
+ pandoc.RawInline('latex', '\\end{'..env..'}')
+ }
+ end
+end