diff options
Diffstat (limited to '_extensions/js/ingress/ingress.lua')
-rw-r--r-- | _extensions/js/ingress/ingress.lua | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/_extensions/js/ingress/ingress.lua b/_extensions/js/ingress/ingress.lua new file mode 100644 index 0000000..3c2c429 --- /dev/null +++ b/_extensions/js/ingress/ingress.lua @@ -0,0 +1,29 @@ +-- Translate div class .lead to custo LaTeX environment \ingress{} + +local function escape_latex(str) + local replacements = { + ["\\"] = "\\textbackslash{}", + ["{"] = "\\{", + ["}"] = "\\}", + ["$"] = "\\$", + ["&"] = "\\&", + ["#"] = "\\#", + ["_"] = "\\_", + ["%"] = "\\%", + ["^"] = "\\textasciicircum{}", + ["~"] = "\\textasciitilde{}" + } + return (str:gsub(".", function(c) + return replacements[c] or c + end)) +end + +function Div(el) + if FORMAT:match 'latex' then + if el.classes:includes('lead') then + local content = pandoc.utils.stringify(el.content) + local escaped_content = escape_latex(content) + return pandoc.RawBlock('latex', '\\ingress{' .. escaped_content .. '}') + end + end +end |