模块:Gadget-legend
File:Test Template Info-Icon - Version (2).svg 模块文档[查看] [编辑] [历史] [清除缓存]
本模块为{{Gadget-legend}}的Lua实现,详情请见Template:Gadget-legend。
require('strict')
local getArgs -- lazily initialized
local lan = require('Module:Lan')
local config = {
default = {
abbr = lan._main({ ['zh-hans'] = '预', ['zh-hant'] = '預' }, mw.getCurrentFrame()),
desc = lan._main({ ['zh-hans'] = '小工具默认启用', ['zh-hant'] = '小工具預設啟用' }, mw.getCurrentFrame()),
},
extwiki = {
abbr = '跨',
desc = lan._main({ ['zh-hans'] = '小工具会加载其他维基媒体wiki站点的脚本', ['zh-hant'] = '小工具會載入其他維基媒體wiki站點的指令碼' }, mw.getCurrentFrame()),
},
external = {
abbr = '外',
desc = lan._main({ ['zh-hans'] = '小工具会加载外部网站(非WMF站点)内容', ['zh-hant'] = '小工具會載入外部網站(非WMF站點)內容' }, mw.getCurrentFrame()),
},
user = {
abbr = '用',
desc = lan._main({ ['zh-hans'] = '小工具会加载用户脚本', ['zh-hant'] = '小工具會載入使用者指令碼', ['zh-hk'] = '小工具會載入用戶指令碼' }, mw.getCurrentFrame()),
},
}
local p = {}
local function listbox()
local list = mw.html.create('dl')
for key, value in pairs(config) do
list:tag('dt')
:css('float', 'left')
:css('margin', '0 0.5em 0 0')
:css('line-height', '1.3em')
:wikitext(value.abbr)
:done()
:tag('dd')
:css('margin-left', '1.5em')
:css('line-height', '1.3em')
:wikitext(value.desc)
end
local root = mw.html.create('div')
root
:addClass('mw-collapsible')
:css('float', 'right')
:css('margin-left', '1em')
:css('margin-bottom', '0')
:css('clear', 'right')
:css('font-size', '85%')
:css('line-height', '1.2em')
:css('padding', '0.5em')
:css('color', 'inherit')
:css('background-color', 'var(--background-color-base, #fff)')
:css('position', 'relative')
:css('z-index', '1')
:css('border', '1px solid var(--border-color-subtle, #c8ccd1)')
:tag('strong')
:wikitext(lan._main({ ['zh-hans'] = '小工具图例:', ['zh-hant'] = '小工具圖例:' }, mw.getCurrentFrame()))
:done()
:tag('div')
:addClass('mw-collapsible-content')
:node(list)
return tostring(root)
end
local function list()
local root = mw.html.create('ul')
for key, value in pairs(config) do
root:tag('li')
:node(p.get(key))
:wikitext(':' .. value.desc)
end
return tostring(root)
end
function p.get(key)
local entry = config[key]
if entry == nil then
return ''
end
local result = mw.html.create('sup')
result:tag('abbr')
:attr('title', entry.desc)
:wikitext(entry.abbr)
:allDone()
return tostring(result)
end
function p.main(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
local args = getArgs(frame)
if args[1] == 'listbox' then
return listbox()
elseif args[1] == 'list' then
return list()
elseif args[1] == 'get' then
return p.get(args[2])
else
error('模式未知')
end
end
return p