跳转到内容

模組:沙盒/August.C/a

维基百科,自由的百科全书
-- Module:MessageBox
-- 產生簡易訊息盒:{{MessageBox|type=warning|text=需擴充此段落}}
local p = {}

local icon_map = {
    info    = "ℹ️",
    warning = "⚠️",
    error   = "❌",
    success = "✅",
    note    = "📝",
}

local class_map = {
    info    = "mbox-info",
    warning = "mbox-warning",
    error   = "mbox-error",
    success = "mbox-success",
    note    = "mbox-note",
}

function p.main(frame)
    local args = frame:getParent().args  -- 透過模板呼叫取得參數
    local typ  = (args.type or "info"):lower()
    local text = args.text or ""

    local icon  = icon_map[typ]  or icon_map.info
    local class = class_map[typ] or class_map.info

    local box = mw.html.create("div")
        :addClass("mbox")
        :addClass(class)
        :cssText("border:1px solid #ccc;border-left-width:4px;padding:0.5em 1em;margin:0.5em 0;")

    box:tag("span")
       :addClass("mbox-icon")
       :cssText("margin-right:0.5em;")
       :wikitext(icon)

    box:tag("span")
       :addClass("mbox-text")
       :wikitext(text)

    return tostring(box)
end

return p