Editing Module:Shortcut

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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 templateMode = options.template and yesno(options.template)
local isCategorized = yesno(options.category) ~= false
local redirectMode = options.redirect and yesno(options.redirect)
local isCategorized = not options.category or yesno(options.category) ~= false


-- 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
local templatePath, prefix
listItems[i] = frame:expandTemplate{
if templateMode then
title = 'No redirect',
-- Namespace detection
args = {shortcut}
local titleObj = mw.title.new(shortcut, 10)
}
if titleObj.namespace == 10 then
templatePath = titleObj.fullText
else
templatePath = shortcut
end
prefix = options['pre' .. i] or options.pre or ''
end
if options.target and yesno(options.target) then
listItems[i] = templateMode
and string.format("{{%s[[%s|%s]]}}", prefix, templatePath, shortcut)
or string.format("[[%s]]", shortcut)
else
listItems[i] = frame:expandTemplate{
title = 'No redirect',
args = templateMode and {templatePath, shortcut} or {shortcut, shortcut}
}
if templateMode then
listItems[i] = string.format("{{%s%s}}", prefix, listItems[i])
end
end
end
end
table.insert(listItems, options.msg)
table.insert(listItems, options.msg)
Line 77: Line 55:


local root = mw.html.create()
local root = mw.html.create()
root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = 'Module:Shortcut/styles.css'} })
 
-- Anchors
-- Anchors
local anchorDiv = root
local anchorDiv = root
:tag('div')
:tag('div')
:addClass('module-shortcutanchordiv')
: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)
Line 92: Line 71:
local nShortcuts = #shortcuts
local nShortcuts = #shortcuts
if nShortcuts > 0 then
if nShortcuts > 0 then
local headingMsg = options['shortcut-heading'] or
shortcutHeading = message(cfg['shortcut-heading'], nShortcuts)
redirectMode and cfg['redirect-heading'] or
cfg['shortcut-heading']
shortcutHeading = message(headingMsg, nShortcuts)
shortcutHeading = frame:preprocess(shortcutHeading)
shortcutHeading = frame:preprocess(shortcutHeading)
end
end
Line 103: Line 79:
local shortcutList = root
local shortcutList = root
:tag('div')
:tag('div')
:addClass('module-shortcutboxplain noprint')
:addClass('shortcutbox plainlist noprint')
:attr('role', 'note')
:attr('role', 'note')
if options.float and options.float:lower() == 'left' then
:css('float', 'right')
shortcutList:addClass('module-shortcutboxleft')
:css('border', '1px solid #aaa')
end
:css('background', '#fff')
if options.clear and options.clear ~= '' then
:css('margin', '0em 0em 0em 1em')
shortcutList:css('clear', options.clear)
:css('padding', '.3em .6em .2em .6em')
end
:css('text-align', 'center')
:css('font-size', '85%')
:css('font-weight', 'bold')
if shortcutHeading then
if shortcutHeading then
shortcutList
shortcutList
:tag('div')
:tag('div')
:addClass('module-shortcutlist')
:css('display','inline-block')
:css('border-bottom','1px solid #aaa')
:css('margin-bottom', '.2em')
:css('font-weight', 'normal')
:wikitext(shortcutHeading)
:wikitext(shortcutHeading)
end
end
local list = shortcutList:tag('ul')
local ubl = require('Module:List').unbulleted(listItems)
for i, item in ipairs(listItems) do
shortcutList:wikitext(ubl)
list:tag('li'):wikitext(item)
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
Cancel Editing help (opens in new window)

  [] · [[]] · [[|]] · {{}} · · “” ‘’ «» ‹› „“ ‚‘ · ~ | °   · ± × ÷ ² ³ ½ · §
     [[Category:]] · [[:File:]] · [[Special:MyLanguage/]] · Special:MyLanguage/ · <code></code> · <nowiki></nowiki> <code><nowiki></nowiki></code> · <syntaxhighlight lang="php"></syntaxhighlight> · <includeonly></includeonly> · <noinclude></noinclude> · #REDIRECT[[]] · <translate></translate> · <languages/> · {{#translation:}} · <tvar name=1></tvar> · {{DEFAULTSORT:}} · <s></s>

Template used on this page: