Module:Shortcut: Difference between revisions

From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
move messages to the config module and make categories optional
(output an error message if there is nothing to display)
(move messages to the config module and make categories optional)
Line 5:
 
-- Load required modules
local yesno = require('Module:Yesno')
local checkType = require('libraryUtil').checkType
local yesno = require('Module:Yesno')
 
local p = {}
 
local function message(msg, ...)
return mw.message.newRawMessage(msg, ...):plain()
end
 
local function makeCategoryLink(cat)
return string.format('[[%s:%s]]', mw.site.namespaces[14].name, cat)
end
 
function p._main(shortcuts, options, frame, cfg)
Line 16 ⟶ 24:
frame = frame or mw.getCurrentFrame()
cfg = cfg or mw.loadData(CONFIG_MODULE)
local isCategorized = yesno(options.category) ~= false
 
-- Validate shortcuts
for i, shortcut in ipairs(shortcuts) do
if type(shortcut) ~= 'string' or #shortcut < 1 then
error(message(cfg['invalid-shortcut-error'], i), 2)
error(string.format(
'shortcut #%d was invalid (shortcuts must be strings of ' ..
'at least one character in length)'
), 2)
end
end
Line 37 ⟶ 43:
-- Return an error if we have nothing to display
if #listItems < 1 then
local msg = cfg['no-content-error']
return '<strong class="error">Error: no shortcuts were specified ' ..
msg = string.format('<strong class="error">%s</strong>', msg)
'and the ' .. mw.text.nowiki('|msg=') .. ' parameter was not ' ..
if isCategorized and cfg['no-content-error-category'] then
'set.</strong>'
msg = msg .. makeCategoryLink(cfg['no-content-error-category'])
end
return msg
end
 
Line 61 ⟶ 70:
local nShortcuts = #shortcuts
if nShortcuts > 0 then
shortcutHeading = mw.message.newRawMessage(cfg['shortcut-heading'], nShortcuts)
cfg['shortcut-heading'],
nShortcuts
):plain()
shortcutHeading = frame:preprocess(shortcutHeading)
shortcutHeading = shortcutHeading .. '\n'
Line 92 ⟶ 98:
end
 
-- ErrorOutput an error category if the first shortcut doesn't exist
if isCategorized
if shortcuts[1] and not yesno(options.nocat) then
and shortcuts[1]
and cfg['first-parameter-error-category']
then
local title = mw.title.new(shortcuts[1])
if not title or not title.exists then
root:wikitext(string.formatmakeCategoryLink(cfg['first-parameter-error-category']))
'[[%s:%s]]',
mw.site.namespaces[14].name,
cfg['first-parameter-error-category']
))
end
end
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu