Module:Shortcut: Difference between revisions
incorporate clear/pre/redirect of Template:Template shortcut; suppress module calls
(from sandbox) |
(incorporate clear/pre/redirect of Template:Template shortcut; suppress module calls) |
||
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 templateMode = yesno(options.template) | local templateMode = options.template and yesno(options.template) | ||
local | local redirectMode = options.redirect and yesno(options.redirect) | ||
local isCategorized = yesno(options.category) ~= false | local isCategorized = not options.category or yesno(options.category) ~= false | ||
-- Validate shortcuts | -- Validate shortcuts | ||
Line 39: | Line 39: | ||
local listItems = {} | local listItems = {} | ||
for i, shortcut in ipairs(shortcuts) do | for i, shortcut in ipairs(shortcuts) do | ||
local templatePath | local templatePath, prefix | ||
if templateMode then | if templateMode then | ||
-- Namespace detection | -- Namespace detection | ||
Line 48: | Line 48: | ||
templatePath = shortcut | templatePath = shortcut | ||
end | end | ||
prefix = options['pre' .. i] or options.pre or '' | |||
end | end | ||
if yesno(options.target) then | if options.target and yesno(options.target) then | ||
listItems[i] = templateMode | listItems[i] = templateMode | ||
and string.format("{{[[%s|%s]]}}", templatePath, shortcut) | and string.format("{{%s[[%s|%s]]}}", prefix, templatePath, shortcut) | ||
or string.format("[[%s]]", shortcut) | or string.format("[[%s]]", shortcut) | ||
else | else | ||
Line 59: | Line 60: | ||
} | } | ||
if templateMode then | if templateMode then | ||
listItems[i] = string.format("{{%s}}", listItems[i]) | listItems[i] = string.format("{{%s%s}}", prefix, listItems[i]) | ||
end | end | ||
end | end | ||
Line 91: | Line 92: | ||
local nShortcuts = #shortcuts | local nShortcuts = #shortcuts | ||
if nShortcuts > 0 then | if nShortcuts > 0 then | ||
local headingMsg = options['shortcut-heading'] or cfg['shortcut-heading'] | local headingMsg = options['shortcut-heading'] or | ||
redirectMode and cfg['redirect-heading'] or | |||
cfg['shortcut-heading'] | |||
shortcutHeading = message(headingMsg, nShortcuts) | shortcutHeading = message(headingMsg, nShortcuts) | ||
shortcutHeading = frame:preprocess(shortcutHeading) | shortcutHeading = frame:preprocess(shortcutHeading) | ||
Line 102: | Line 105: | ||
:addClass('module-shortcutboxplain plainlist noprint') | :addClass('module-shortcutboxplain plainlist noprint') | ||
:attr('role', 'note') | :attr('role', 'note') | ||
if | if options.float and options.float:lower() == 'left' then | ||
shortcutList:addClass('module-shortcutboxleft') | shortcutList:addClass('module-shortcutboxleft') | ||
end | |||
if options.clear and options.clear ~= '' then | |||
shortcutList:css('clear', options.clear) | |||
end | end | ||
if shortcutHeading then | if shortcutHeading then |