模組:Class
外观
local getArgs = require('Module:Arguments').getArgs
local class = mw.loadData('Module:Class/data')
local function getIdx(cont)
if cont == nil then
return 1
end
cont = string.lower(cont)
for i, v in ipairs(class) do
if cont == v.code then
return i
end
if cont == v.name then
return i
end
if cont == v.name2 then
return i
end
for _, w in ipairs(v.alias) do
if cont == w then
return i
end
end
end
return 1
end
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame)
return p[funcName](args)
end
end
p = {}
p.colour = makeInvokeFunc('_colour')
function p._colour(args)
local idx = getIdx(args[1])
return mw.text.nowiki(class[idx].color)
end
p.icon = makeInvokeFunc('_icon')
function p._icon(args)
local idx = getIdx(args[1])
local ret = ''
if class[idx].icon then
ret = string.format('[[File:%s|%s|16px]]', class[idx].icon, class[idx].name)
end
return ret
end
return p