跳转到内容

模組:Class

被永久保护的模块
维基百科,自由的百科全书

这是本页的一个历史版本,由風中的刀劍留言 | 贡献2015年8月19日 (三) 12:31编辑。这可能和当前版本存在着巨大的差异。

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