7fa286fff1
All "helper functions" are not part of the Lua code for module pandoc, but are added in Haskell. The respective documentation section must therefore be excluded from automatic regeneration.
49 lines
1.2 KiB
Lua
49 lines
1.2 KiB
Lua
local in_module_section = false
|
|
|
|
-- Generate tmp folder
|
|
local tmp_folder = os.tmpname()
|
|
os.remove(tmp_folder)
|
|
os.execute("mkdir -p " .. tmp_folder)
|
|
|
|
function extend(list1, list2)
|
|
for i = 1, #list2 do
|
|
list1[#list1 + 1] = list2[i]
|
|
end
|
|
end
|
|
|
|
function module_blocks(module_filenames)
|
|
local blocks = {}
|
|
for _, filename in pairs(module_filenames) do
|
|
os.execute("ldoc -q -l tools -d " .. tmp_folder .. " " .. filename)
|
|
local module_file = io.open(tmp_folder .. "/index.html")
|
|
local module_html = module_file:read("*a")
|
|
local module_doc = pandoc.read(module_html, "html")
|
|
extend(blocks, module_doc.blocks)
|
|
end
|
|
return blocks
|
|
end
|
|
|
|
function Header (el)
|
|
if in_module_section then
|
|
if el.level == 1 or
|
|
-- special case for Module pandoc
|
|
(el.level == 2 and el.identifier == 'helper-functions') then
|
|
in_module_section = false
|
|
return el
|
|
else
|
|
return {}
|
|
end
|
|
elseif el.identifier == "module-pandoc" then
|
|
in_module_section = true
|
|
return module_blocks{'data/pandoc.lua'}
|
|
elseif el.identifier == "module-pandoc.list" then
|
|
in_module_section = true
|
|
return module_blocks{'data/pandoc.List.lua'}
|
|
end
|
|
end
|
|
|
|
function Block (el)
|
|
if in_module_section then
|
|
return {}
|
|
end
|
|
end
|