Module:Error: Difference between revisions

From TEPwiki, Urth's Encyclopedia
Jump to navigation Jump to search
Content added Content deleted
(also don't bother removing whitespace values from the parameters, as the original template doesn't do this either)
m (19 revisions imported: infobox)
 
(9 intermediate revisions by 3 users not shown)
Line 2: Line 2:


local p = {}
local p = {}

local HtmlBuilder = require('Module:HtmlBuilder')


local function _error(args)
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))
local tag = mw.ustring.lower(tostring(args.tag))


Line 16: Line 12:


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

return tostring(root)
end
end


function p.error(frame)
function p.error(frame)
local origArgs
local args
if frame == mw.getCurrentFrame() then
if type(frame.args) == 'table' 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
-- from the template page, so use the args that were passed into the template.
-- from the template page, so use the args that were passed into the template.
Line 34: Line 28:
-- the args are passed in directly.
-- the args are passed in directly.
args = frame
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
end
return _error(args)
return _error(args)

Latest revision as of 20:40, 23 April 2019

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