Module:Glossary
Jump to navigation
Jump to search
The Lua source code for the display of in-game terms through Template:Glossary.
local p = {}
local data = {
buff = mw.loadData('Module:Glossary/buff'),
debuff = mw.loadData('Module:Glossary/debuff'),
elemental = mw.loadData('Module:Glossary/elemental'),
misc = mw.loadData('Module:Glossary/misc'),
riic = mw.loadData('Module:Glossary/riic'),
status = mw.loadData('Module:Glossary/status'),
}
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
function p.main(frame)
local args = getArgs(frame, {
wrappers = 'Template:Glossary'
})
return p._main(args)
end
function p._main(args)
local key = args[1]
local obj
for _, m in pairs(data) do
obj = m[key]
if obj then break end
end
if not obj then
return '' -- no entry.
end
local name = obj.name
local title = obj.title
local desc = obj.desc
local link = obj.link
local pagename = link or name
local text = args[2] or title or name
local nolink = yesno(args.nolink)
local attrs = {
['data-name'] = name,
['data-title'] = title,
['data-desc'] = desc,
}
local container = mw.html.create('')
local stooltip = container:tag('span')
:addClass('glossary')
:attr(attrs)
:css('text-decoration', 'underline')
if nolink or link == 'none' then
stooltip:wikitext(text)
else
stooltip:wikitext('[['..pagename..'|'..text..']]')
end
return container
end
return p