Module:Error: Difference between revisions

From TEPwiki, Urth's Encyclopedia
Jump to navigation Jump to search
Content deleted Content added
also don't bother removing whitespace values from the parameters, as the original template doesn't do this either
m fix variable name
Line 25: Line 25:


function p.error(frame)
function p.error(frame)
local origArgs
local args
if frame == mw.getCurrentFrame() then
if frame == mw.getCurrentFrame() then
-- We're being called via #invoke. The args are passed through to the module
-- We're being called via #invoke. The args are passed through to the module

Revision as of 06:55, 4 April 2013

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

-- This module implements {{error}}.

local p = {}

local HtmlBuilder = require('Module:HtmlBuilder')

local function _error(args)
    local message = args.message or args[1] or error('no message specified', 2)
    message = tostring(message)
    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.
    local root = HtmlBuilder.create(tag)
    root
        .addClass('error')
        .wikitext(message)

    return tostring(root)
end

function p.error(frame)
    local args
    if frame == mw.getCurrentFrame() 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
    return _error(args)
end

return p