42 lines
1.1 KiB
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
|