模組:Class
外观
local list = {
-- Article class
{ code = 'fa', name = '特色', colour = '#6699ff', icon = 'Symbol star.svg', alias = { '特', '特色', '特色條目' } },
{ code = 'a', name = '甲', colour = '#66ffff', icon = 'Symbol a class.svg', alias = { '甲级', '甲級' } },
{ code = 'ga', name = '优良', colour = '#66ff66', icon = 'Symbol support vote.svg', alias = { '优', '優', '優良', '优良条目', '優良條目' } },
{ code = 'bplus', name = '乙上', colour = '#b2ff66', icon = 'Symbol bplus class.svg', alias = { 'b+', '乙+' } },
{ code = 'b', name = '乙', colour = '#b2ff66', icon = 'Symbol b class.svg', alias = { '乙级', '乙級' } },
{ code = 'c', name = '丙', colour = '#ffff66', icon = 'Symbol c class.svg', alias = { '丙级', '丙級' } },
{ code = 'start', name = '初级', colour = '#ffaa66', icon = 'Start-icon.svg', alias = { '初', '初級' } },
{ code = 'stub', name = '小作品', colour = '#ff6666', icon = 'Symbol stub class.svg', alias = { '小' } },
-- List class
{ code = 'fl', name = '特色列表', colour = '#6699ff', icon = 'Symbol star.svg', alias = { '特表' } },
{ code = 'al', name = '甲级列表', colour = '#66ffff', icon = 'Symbol a class.svg', alias = { '甲表', '甲級列表' } },
{ code = 'bl', name = '乙级列表', colour = '#b2ff66', icon = 'Symbol b class.svg', alias = { '乙表', '乙級列表' } },
{ code = 'cl', name = '丙级列表', colour = '#ffff66', icon = 'Symbol c class.svg', alias = { '丙表', '丙級列表' } },
{ code = 'list', name = '列表', colour = '#aa88ff', icon = 'Symbol list class.svg', alias = { '表' } },
{ code = 'sl', name = '小列表', colour = '#ff6666', icon = 'Symbol stub class.svg' },
-- Special article class
{ code = 'current', name = '动态', colour = '#d462ff', alias = { '动', '動', '動態', '新闻动态', '新聞動態' } },
{ code = 'future', name = '未来', colour = '#8a95c9', alias = { '未來' } },
{ code = 'merge', name = '合并', colour = '#add8e6', alias = { '并', '併', '合併' } },
{ code = 'needed', name = '请求', colour = '#dcdcdc', alias = { '请', '請', '請求' } },
-- Non-article class
{ code = 'category', name = '分类', colour = '#ffdb58', icon = 'Folder Hexagonal Icon.svg', alias = { 'cat', '类', '類', '分類'} },
{ code = 'disambig', name = '消歧义', colour = '#00fa9a', icon = 'Symbol dab class.svg', alias = { 'dab', 'disam', '消', '消歧義' } },
{ code = 'draft', name = '草稿', colour = '#d98159', icon = 'Symbol wait.svg', alias = { '稿' } },
{ code = 'fm', name = '特色图片', colour = '#6699ff', icon = 'Symbol star.svg', alias = { '特图', '特圖', '特色圖片' } },
{ code = 'file', name = '文件', colour = '#ddccff', icon = 'Symbol watching black.svg', alias = { 'image', '图', '圖', '图像', '圖像', '檔案' } },
{ code = 'portal', name = '主题', colour = '#cc8899', icon = 'Symbol Portal 2.svg', alias = { '主題' } },
{ code = 'project', name = '专题', colour = '#c0c090', icon = 'Symbol information vote.svg', alias = { '專題' } },
{ code = 'redirect', name = '重定向', colour = '#c0c0c0', icon = 'Symbol redirect vote2.svg' },
{ code = 'template', name = '模板', colour = '#fbceb1', icon = 'Symbol template class.svg' },
{ code = 'user', name = '用户', colour = '#999900' },
{ code = 'deferred', name = '搁置', colour = '#999999' },
{ code = 'na', name = '非条目', colour = '#f5f5f5', icon = 'Symbol neutral vote.svg', alias = { '非', '非條目' } },
-- Unassessed
{ code = 'unassessed', name = '未评级', colour = 'transparent', icon = 'Symbol question.svg' }
}
--------------------------------------------------------------------------------
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