Editing Module:Shortcut
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 24: | Line 24: | ||
frame = frame or mw.getCurrentFrame() | frame = frame or mw.getCurrentFrame() | ||
cfg = cfg or mw.loadData(CONFIG_MODULE) | cfg = cfg or mw.loadData(CONFIG_MODULE) | ||
local isCategorized = yesno(options.category) ~= false | |||
local isCategorized = | |||
-- Validate shortcuts | -- Validate shortcuts | ||
Line 39: | Line 37: | ||
local listItems = {} | local listItems = {} | ||
for i, shortcut in ipairs(shortcuts) do | for i, shortcut in ipairs(shortcuts) do | ||
listItems[i] = string.format('[[%s]]', shortcut) | |||
end | end | ||
table.insert(listItems, options.msg) | table.insert(listItems, options.msg) | ||
Line 77: | Line 52: | ||
local root = mw.html.create() | local root = mw.html.create() | ||
-- Anchors | -- Anchors | ||
local anchorDiv = root | local anchorDiv = root | ||
:tag('div') | :tag('div') | ||
: | :css('position', 'relative') | ||
:css('top', '-3em') | |||
for i, shortcut in ipairs(shortcuts) do | for i, shortcut in ipairs(shortcuts) do | ||
local anchor = mw.uri.anchorEncode(shortcut) | local anchor = mw.uri.anchorEncode(shortcut) | ||
anchorDiv:tag('span'):attr('id', anchor) | anchorDiv:tag('span'):attr('id', anchor) | ||
end | end | ||
root:newline() -- To match the old [[Template:Shortcut]] | |||
-- Shortcut heading | -- Shortcut heading | ||
Line 92: | Line 70: | ||
local nShortcuts = #shortcuts | local nShortcuts = #shortcuts | ||
if nShortcuts > 0 then | if nShortcuts > 0 then | ||
shortcutHeading = message(cfg['shortcut-heading'], nShortcuts) | |||
shortcutHeading = frame:preprocess(shortcutHeading) | shortcutHeading = frame:preprocess(shortcutHeading) | ||
shortcutHeading = shortcutHeading .. '\n' | |||
end | end | ||
end | end | ||
Line 102: | Line 78: | ||
-- Shortcut box | -- Shortcut box | ||
local shortcutList = root | local shortcutList = root | ||
:tag(' | :tag('table') | ||
:addClass(' | :addClass('shortcutbox noprint') | ||
: | :css('float', 'right') | ||
:css('border', '1px solid #aaa') | |||
shortcutList: | :css('background', '#fff') | ||
:css('margin', '.3em .3em .3em 1em') | |||
:css('padding', '3px') | |||
:css('text-align', 'center') | |||
:tag('tr') | |||
:tag('th') | |||
:addClass('plainlist') | |||
:css('border', 'none') | |||
:css('background', 'transparent') | |||
:tag('small') | |||
:wikitext(shortcutHeading) | |||
:tag('ul') | |||
for i, item in ipairs(listItems) do | |||
shortcutList:tag('li'):wikitext(item) | |||
end | end | ||
if | |||
-- Output an error category if the first shortcut doesn't exist | |||
if isCategorized | |||
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(makeCategoryLink(cfg['first-parameter-error-category'])) | |||
end | |||
end | end | ||
return tostring(root) | return tostring(root) | ||
end | end | ||
function p.main(frame) | function p.main(frame) | ||
local args = require('Module:Arguments').getArgs(frame) | local args = require('Module:Arguments').getArgs(frame, { | ||
wrappers = 'Template:Shortcut' | |||
}) | |||
-- Separate shortcuts from options | -- Separate shortcuts from options |