aboutsummaryrefslogtreecommitdiff
path: root/assets/manual/filter_man_md2tex.lua
diff options
context:
space:
mode:
Diffstat (limited to 'assets/manual/filter_man_md2tex.lua')
-rw-r--r--assets/manual/filter_man_md2tex.lua28
1 files changed, 28 insertions, 0 deletions
diff --git a/assets/manual/filter_man_md2tex.lua b/assets/manual/filter_man_md2tex.lua
new file mode 100644
index 0000000..baa5c00
--- /dev/null
+++ b/assets/manual/filter_man_md2tex.lua
@@ -0,0 +1,28 @@
+return {
+ {
+ Str = function(elem)
+ if elem.text == "Advtrains" then
+ return pandoc.RawInline("latex", "\\advtrains{}")
+ end
+ end
+ },
+ {
+ Header = function(elem)
+ return pandoc.Header(elem.level+1, elem.content)
+ end,
+ },
+ {
+ Pandoc = function(elem)
+ local outputfn = PANDOC_STATE.output_file or error("No output file specified")
+ local pgname, pgsection = outputfn:match("([^%./\\]+)%.([^%.]+)%.tex$")
+ assert(pgname and pgsection, "Cannot fetch manpage name and section")
+ local blocks = elem.blocks
+ local titlestr = string.format("%s(%s)", pgname, pgsection)
+ local titleid = string.format("man:%s.%s", pgname, pgsection)
+ local titleobj = pandoc.Header(1, pandoc.Code(titlestr))
+ titleobj.identifier = titleid
+ blocks:insert(1, titleobj)
+ return elem
+ end,
+ },
+}