Fix cyclic build dependency for 06-appearance.md.lua

Previously this code checked the generated documentation to decide if
something is a class or a module. Now, it parses the source file and
looks for the @classmod, @module and @submodule tags to make the same
decision.

Fixes: https://github.com/awesomeWM/awesome/issues/1255
Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter 2017-06-14 14:49:51 +02:00
parent 61229500a2
commit b8956090d9
1 changed files with 17 additions and 18 deletions

View File

@ -62,31 +62,30 @@ local function path_to_module(path)
error("Cannot figure out module for " .. tostring(path)) error("Cannot figure out module for " .. tostring(path))
end end
local function module_to_html(mod) local function path_to_html(path)
mod = mod:gsub(".init", "") local mod = path_to_module(path):gsub(".init", "")
local f = assert(io.open(path))
local f = io.open("doc/classes/".. mod ..".html","r") while true do
local line = f:read()
if f~=nil then if not line then break end
if line:match("@classmod") then
f:close() f:close()
return "../classes/".. mod ..".html" return "../classes/".. mod ..".html"
end end
if line:match("@module") or line:match("@submodule") then
f = io.open("doc/libraries/".. mod ..".html","r")
if f~=nil then
f:close() f:close()
return "../libraries/".. mod ..".html" return "../libraries/".. mod ..".html"
end end
end
f:close()
-- This can happen error("Cannot figure out if module or class: " .. tostring(path))
return ""
end end
local function get_link(file, element) local function get_link(file, element)
return table.concat { return table.concat {
"<a href='", "<a href='",
module_to_html(path_to_module(file)), path_to_html(file),
"#", "#",
element, element,
"'>", "'>",