模組:Class
外观
local class = mw.loadData('Module:Class/data')
local getArgs = require('Module:Arguments').getArgs
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame)
return p[funcName](args)
end
end
local function isThisIdx(idx, text)
if text == list[idx].code then
return true
end
if text == list[idx].name then
return true
end
if list[idx].alias then
for i, v in ipairs(list[idx].alias) do
if text == v then return true end
end
end
end
local function getIdx(text)
if text == nil then
return #list
end
for idx, v in ipairs(list) do
if isThisIdx(idx, text) then
return idx
end
end
return #list
end
p = {}
p.colour = makeInvokeFunc('_colour')
function p._colour(args)
local text = string.lower(args[1])
local idx = getIdx(text)
return list[idx].colour
end
p.icon = makeInvokeFunc('_icon')
function p._icon(args)
local text = string.lower(args[1])
local idx = getIdx(text)
return list[idx].icon
end
p.main = makeInvokeFunc('_main')
function p._main(args)
return
end
return p