14,061
edits
m (1 revision) |
(Add module) |
||
Line 5: | Line 5: | ||
-- Load required modules | -- Load required modules | ||
local yesno = require('Module:Yesno') | |||
local checkType = require('libraryUtil').checkType | local checkType = require('libraryUtil').checkType | ||
local p = {} | local p = {} | ||
function p._main(shortcuts, options, frame, cfg) | function p._main(shortcuts, options, frame, cfg) | ||
Line 24: | Line 16: | ||
frame = frame or mw.getCurrentFrame() | frame = frame or mw.getCurrentFrame() | ||
cfg = cfg or mw.loadData(CONFIG_MODULE) | cfg = cfg or mw.loadData(CONFIG_MODULE) | ||
-- Validate shortcuts | -- Validate shortcuts | ||
for i, shortcut in ipairs(shortcuts) do | for i, shortcut in ipairs(shortcuts) do | ||
if type(shortcut) ~= 'string' or #shortcut < 1 then | if type(shortcut) ~= 'string' or #shortcut < 1 then | ||
error( | error(string.format( | ||
'shortcut #%d was invalid (shortcuts must be strings of ' .. | |||
'at least one character in length)' | |||
), 2) | |||
end | end | ||
end | end | ||
Line 40: | Line 34: | ||
end | end | ||
table.insert(listItems, options.msg) | table.insert(listItems, options.msg) | ||
local nListItems = #listItems | |||
-- | -- Exit if we have nothing to display | ||
if | if nListItems < 1 then | ||
return nil | |||
return | |||
end | end | ||
Line 66: | Line 56: | ||
-- Shortcut heading | -- Shortcut heading | ||
local shortcutHeading | local shortcutHeading = mw.message.newRawMessage( | ||
cfg['shortcut-heading'], | |||
nListItems | |||
):plain() | |||
shortcutHeading = frame:preprocess(shortcutHeading) | |||
-- Shortcut box | -- Shortcut box | ||
Line 93: | Line 79: | ||
:tag('small') | :tag('small') | ||
:wikitext(shortcutHeading) | :wikitext(shortcutHeading) | ||
:newline() | |||
:tag('ul') | :tag('ul') | ||
for i, item in ipairs(listItems) do | for i, item in ipairs(listItems) do | ||
Line 98: | Line 85: | ||
end | end | ||
-- | -- Error category | ||
if | if shortcuts[1] and not yesno(options.nocat) then | ||
local title = mw.title.new(shortcuts[1]) | local title = mw.title.new(shortcuts[1]) | ||
if not title or not title.exists then | if not title or not title.exists then | ||
root:wikitext( | root:wikitext(string.format( | ||
'[[%s:%s]]', | |||
mw.site.namespaces[14].name, | |||
cfg['first-parameter-error-category'] | |||
)) | |||
end | end | ||
end | end |