Module:Error
Revision as of 18:23, 1 April 2013 by blackwiki>Mr. Stradivarius (test for all whitespace values rather than just the blank string)
| This Lua module is used on approximately 453,000 pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. Transclusion count updated automatically (see documentation). |
| This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This module creates an html message with class "error". It is a replacement for {{error}} - please see the documentation page there for usage instructions.
-- This module implements {{error}}
local p = {}
local HtmlBuilder = require('Module:HtmlBuilder')
local function _error(args)
local s = args.message or args[1] or error('no message specified', 2)
local tag = mw.ustring.lower(tostring(args.tag))
local t
if tag == 'p' or tag == 'span' or tag == 'div' then
t = tag
else
t = 'strong'
end
local root = HtmlBuilder.create(t)
root
.addClass('error')
.wikitext(tostring(s))
return tostring(root)
end
function p.error(frame)
local origArgs
if frame == mw.getCurrentFrame() then
-- We're being called via #invoke. If the invoking template passed any args, use
-- them. Otherwise, use the args that were passed into the template.
origArgs = frame:getParent().args
for k, v in pairs(frame.args) do
origArgs = frame.args
break
end
else
-- We're being called from another module or from the debug console, so assume
-- the args are passed in directly.
origArgs = frame
end
-- ParserFunctions considers the empty string to be false, so to preserve the previous
-- behavior of the template, change any empty arguments to nil, so Lua will consider
-- them false too.
local args = {}
for k, v in pairs(origArgs) do
if mw.ustring.match(v, '%S') then
args[k] = v
end
end
local args = origArgs
return _error(args)
end
return p