打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

模块: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