require('Module:No globals')
local config = {
fa = {
image = 'Symbol star.svg', alt = '典范级',
alias = {'典范', '典範', '典范条目', '典範條目', '特', '特色', '特色条目', '特色條目'}
},
fl = {
image = 'Symbol star.svg', alt = '特色列表级',
alias = {'特表', '特色列表'}
},
fm = {
image = 'Symbol star.svg', alt = '特色图片级',
alias = {'fi', '特图', '特圖', '特色图片', '特色圖片'}
},
fpo = {
image = 'Linecons big-star.svg', alt = '特色主题级',
alias = {'特色主题', '特色主题'}
},
a = {
image = 'Symbol a class.svg', alt = '甲级',
alias = {'甲', '甲级', '甲級'}
},
al = {
image = 'Symbol a class.svg', alt = '甲级列表级',
alias = {'甲表', '甲级列表', '甲級列表'}
},
ga = {
image = 'Symbol support vote.svg', alt = '优良级',
alias = {'优', '優', '良', '优良', '優良', '优良条目', '優良條目'}
},
gl = { --[[d:Q51759403]]
image = 'Symbol support vote.svg', alt = '优良列表级',
alias = {'優表','优表','良表', '优良列表', '優良列表'}
},
bplus = {
image = 'Symbol bplus class.svg', alt = '乙上级',
alias = {'b+', '乙+', '乙上'}
},
b = {
image = 'Symbol b class.svg', alt = '乙级',
alias = {'乙', '乙级', '乙級'},
},
bl = {
image = 'Symbol b class.svg', alt = '乙级列表级',
alias = {'乙表', '乙级列表', '乙級列表'}
},
complete = {
image = 'Symbol portal class.svg', alt = '完成级',
alias = {'完成', '完成主题','完成主題'},
},
c = {
image = 'Symbol c class.svg', alt = '丙级',
alias = {'丙', '丙级', '丙級'}
},
cl = {
image = 'Symbol c class.svg', alt = '丙级列表级',
alias = {'丙表', '丙级列表', '丙級列表'}
},
substantial = {
image = 'Symbol portal class.svg', alt = '充实级',
alias = {'基本', '基本主题','基本主題','充实','充實','充实主题','充實主題'}
},
d = {
image = 'Symbol d class.svg', alt = '丁级',
alias = {'丁', '丁级', '丁級'}
},
start = {
image = 'Start-icon.svg', alt = '初级',
alias = {'初', '初级', '初級'}
},
basic = {
image = 'Symbol portal class.svg', alt = '简单级',
alias = {'简单', '簡單','简单主题','簡單主題'}
},
list = {
image = 'Symbol list class.svg', alt = '列表级',
alias = {'l', '表', '列表'}
},
stub = {
image = 'Symbol stub class.svg', alt = '小作品级',
alias = {'小', '小作品'}
},
sl = {
image = 'Symbol sl class.svg', alt = '小列表级',
alias = {'小表', '小列表'}
},
substub = {
image = 'Wikivoyage usable icon.png', alt = '小小作品级',
alias = {'小小', '小小作品'}
},
sia = {
image = 'Symbol sia class.svg', alt = '同类索引级',
alias = {'同类索引', '同類索引', '索引'}
},
book = {
image = 'Symbol book class.svg', alt = '图书级',
alias = {'書', '书', '圖書', '图书'}
},
sandbox = {
image = 'Symbol sandbox class.svg', alt = '沙盒级',
alias = {'沙', '沙盒', '砂盒'}
},
category = {
image = 'Symbol category class.svg', alt = '分类级',
alias = {'cat', '类', '類', '分类', '分類'}
},
disambig = {
image = 'Symbol dab class.svg', alt = '消歧义级',
alias = {'dab', 'disamb', '消', '消歧义', '消歧義'}
},
redirect = {
image = 'Symbol redirect class.svg', alt = '重定向级',
alias = {'red', 'redir', '重', '重定向', '重新導向', '重新导向'}
},
template = {
image = 'Symbol template class.svg', alt = '模板级',
alias = {'temp', '模', '板', '模板'}
},
module = {
image = 'Symbol code red.svg', alt = '模块级',
alias = {'mod', '模組', '模组', '模塊', '模块'}
},
na = {
image = 'Symbol na class.svg', alt = '非条目级',
alias = {'非', '非条目', '非條目'}
},
napage = {
image = 'Symbol na class.svg', alt = '非页面级',
alias = {'非页面', '非頁面'}
},
file = {
image = 'Symbol file class.svg', alt = '文件级',
alias = {'image', '图', '圖', '文件', '图像', '圖像', '档案', '檔案', '多媒体', '多媒體', '媒体'}
},
audio = {
image = 'Audio-itunes.svg', alt = '文件级',
alias = {'music', '音', '音频', '音頻', '音訊', '音讯'}
},
portal = {
image = 'Symbol portal class.svg', alt = '主题级',
alias = {'主', '主题', '主題'}
},
project = {
image = 'Symbol project class.svg', alt = '专题级',
alias = {'专', '專', '专题', '專題'}
},
draft = {
image = 'Symbol draft class.svg', alt = '草稿级',
alias = {'稿', '草稿'}
},
user = {
image = 'Symbol user class.svg', alt = '用户级',
alias = {'用户', '使用者'}
},
help = {
image = 'Symbol information vote.svg', alt = '使用说明级',
alias = {'使用说明', '使用說明', '说明','說明'}
},
interface = {
image = 'Pliers Symbol.svg', alt = '使用说明级',
alias = {'界面','介面'}
},
council = {
image = 'WikiProject Council with transparent background.svg', alt = '委员会级',
alias = {'委员会','委員會'}
},
future = {
image = 'Symbol future class.svg', alt = '未来级',
alias = {'未来', '未來'}
},
current = {
image = 'Symbol current class.svg', alt = '动态级',
alias = {'动', '動', '动态', '動態', '新闻动态', '新聞動態'}
},
merge = {
image = 'Symbol merge vote.svg', alt = '合并级',
alias = {'并', '併', '合并', '合併'}
},
needed = {
image = 'Symbol needed class.svg', alt = '请求级',
alias = {'请', '請', '请求', '請求'}
},
deferred = {
image = 'Symbol deferred.svg', alt = '搁置级',
alias = {'搁置', '擱置'}
},
no = {
image = 'Wikivoyage outline icon.png', alt = '无级别',
alias = {'无', '無'}
},
unassessed = {
image = 'Symbol question.svg', alt = '未评级',
alias = {'un', '未', '未评级', '未評級', '未评', '未評'}
},
unknown = {
image = 'Symbol question.svg', alt = '未知级',
alias = {'', ' ', '未知级', '未知級', '未知', '¬'}
},
error = {
image = 'Template-X.svg', alt = '错误',
alias = {'错误', '錯誤'}
},
}
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
local ret = ''
local class
-- 预处理输入等级
local input = args.class or args[1]
if input == nil then
input = 'unassessed'
else
input = mw.ustring.lower(input)
end
-- 获取输入等级
for k, _ in pairs(config) do
if k == input then
class = k
break
end
end
if class == nil then
for k, v in pairs(config) do
for _, w in pairs(v.alias) do
if w == input then
class = k
break
end
end
if class ~= nil then break end
end
end
-- 获取评级图示
if class == nil then
ret = mw.getCurrentFrame():expandTemplate{ title = 'icon', args = {args[1]} }
else
ret = '[[File:' .. config[class].image .. '|' .. config[class].alt .. '|16px]]'
end
if args['css-class'] or args.style then
local span = ''
if args['css-class'] then
span = span .. ' class="' .. args['css-class'] .. '"'
end
if args.style then
span = span .. ' style="' .. args.style .. '"'
end
ret = '<span' .. span .. '>' .. ret .. '</span>'
end
-- RETURN
return ret
end
return p