Jump to content
This is the wiki for Wikimania 2016, which was held in Esino Lario, Italy.
This wiki is now closed and cannot be edited, but its contents can still be read.
The wiki for upcoming Wikimania events can be found at wikimania.wikimedia.org.
More information about Wikimania in general, including past events, is available on Wikimedia's Meta-Wiki.

Module:Error

From Wikimania 2016 • Esino Lario, Italy

Documentation for this module may be created at Module:Error/doc

-- This module implements {{error}}.

local p = {}

local function _error(args)
    local tag = mw.ustring.lower(tostring(args.tag))

    -- Work out what html tag we should use.
    if not (tag == 'p' or tag == 'span' or tag == 'div') then
        tag = 'strong'
    end

    -- Generate the html.
    return tostring(mw.html.create(tag)
        :addClass('error')
        :wikitext(tostring(args.message or args[1] or error('no message specified', 2)))
    )
end

function p.error(frame)
    local args
    if type(frame.args) == 'table' then
        -- We're being called via #invoke. The args are passed through to the module
        -- from the template page, so use the args that were passed into the template.
        args = frame.args
    else
        -- We're being called from another module or from the debug console, so assume
        -- the args are passed in directly.
        args = frame
    end
    -- if the message parameter is present but blank, change it to nil so that Lua will
    -- consider it false.
    if args.message == "" then
        args.message = nil
    end
    return _error(args)
end

return p