模块:Mbox
来自SAPedia
更多操作
此模块的文档可以在Module:Mbox/doc创建
local p = {}
local getArgs = require('Module:Arguments').getArgs
local config = mw.loadData('Module:Mbox/config')
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function processImage(args, type)
local img = args.image or config[type].image or 'Mbox-info.svg'
local size = args.size or config[type].size or '45px'
local imageContainer = mw.html.create('div')
:addClass('mbox-image-container')
:wikitext(string.format('[[File:%s|%s|link=]]', img, size))
return imageContainer
end
function processContent(args)
local title = args.title or ''
local text = args.text or args[1] or error('未指定文本!', 0)
local below = args.below or ''
local contentContainer = mw.html.create('div'):addClass('mbox-content-container')
if title ~= '' then
contentContainer:node(
mw.html.create('div'):addClass('mbox-title'):wikitext(title)
)
end
contentContainer:node(
mw.html.create('div'):addClass('mbox-content'):wikitext(text)
)
if below ~= '' then
contentContainer:node(
mw.html.create('div'):addClass('mbox-below'):wikitext(below)
)
end
return contentContainer
end
function p._main(args)
local type = args.type or 'info'
local container = mw.html.create('div')
:addClass('mbox')
:addClass('mbox-' .. type)
local image = processImage(args, type)
local content = processContent(args)
container:node(image)
container:node(content)
return container
end
return p