pandoc/tools/update-lua-docs.lua
Albert Krewinkel 7fa286fff1
Update tool which generates lua module docs
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.
2017-12-29 10:04:55 +01:00

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