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