efl/src/scripts/elua/apps/docgen/keyref.lua

42 lines
1.1 KiB
Lua

local M = {}
local key_refs = {}
M.add = function(key, link, lang)
local rfs = key_refs[lang]
if not rfs then
key_refs[lang] = {}
rfs = key_refs[lang]
end
rfs[key] = link
end
M.build = function()
local writer = require("docgen.writer")
local dutil = require("docgen.util")
for lang, rfs in pairs(key_refs) do
local f = writer.Writer({ "ref", lang, "keyword-list" })
local arr = {}
for refn, v in pairs(rfs) do
arr[#arr + 1] = refn
local rf = writer.Writer({ "ref", lang, "key", refn })
v[#v + 1] = true
rf:write_include(rf.INCLUDE_PAGE, v)
rf:finish()
end
table.sort(arr)
f:write_raw(table.concat(arr, "\n"))
f:write_nl()
f:finish()
local lf = writer.Writer({ "ref", lang, "keyword-link" })
lf:write_raw("/", dutil.path_join(
dutil.nspace_to_path(dutil.get_root_ns()),
"ref", lang, "key", "{FNAME}"
))
lf:write_nl()
lf:finish()
end
end
return M