Difference between revisions of "Module:Toolbar/sandbox"
Jump to navigation
Jump to search
blackwiki>Mr. Stradivarius (sync) |
m (22 revisions imported) |
||
| (19 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
| + | -- This module implements {{toolbar}}. | ||
| + | |||
| + | local mArguments -- Lazily initialise [[Module:Arguments]] | ||
| + | local mTableTools = require('Module:TableTools') | ||
| + | local yesno = require('Module:Yesno') | ||
| + | |||
local p = {} | local p = {} | ||
| − | |||
| − | + | function p.main(frame) | |
| − | + | mArguments = require('Module:Arguments') | |
| − | + | local args = mArguments.getArgs(frame) | |
| − | + | return p._main(args) | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
end | end | ||
| − | + | function p._main(args) | |
| − | + | local toolbarItems = p.makeToolbarItems(args) | |
| − | + | if not toolbarItems then | |
| − | + | -- Return the blank string if no arguments were specified, rather than | |
| − | + | -- returning empty brackets. | |
| − | + | return '' | |
| − | + | elseif yesno(args.span) == false then | |
| − | + | return string.format( | |
| − | + | '(%s)', | |
| − | + | toolbarItems | |
| − | + | ) | |
| − | + | else | |
| − | + | return string.format( | |
| − | + | '<span class="plainlinks%s"%s>(%s)</span>', | |
| − | + | type(args.class) == 'string' and ' ' .. args.class or '', | |
| − | + | type(args.style) == 'string' and string.format(' style="%s"', args.style) or '', | |
| + | toolbarItems | ||
| + | ) | ||
| + | end | ||
end | end | ||
| − | + | function p.makeToolbarItems(args) | |
| − | + | local nums = mTableTools.numKeys(args) | |
| − | + | local sep = (args.separator or 'pipe') .. '-separator' | |
| − | + | sep = mw.message.new(sep):plain() | |
| − | + | local ret = {} | |
| − | + | for i, v in ipairs(nums) do | |
| − | + | ret[#ret + 1] = mw.ustring.gsub(args[v], "%[%[::+(.-)%]%]", "[[:%1]]") | |
| − | + | end | |
| − | + | if #ret > 0 then | |
| + | return table.concat(ret, sep) | ||
| + | else | ||
| + | return nil | ||
| + | end | ||
end | end | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
return p | return p | ||
Latest revision as of 17:25, 29 September 2020
Documentation for this module may be created at Module:Toolbar/sandbox/doc
-- This module implements {{toolbar}}.
local mArguments -- Lazily initialise [[Module:Arguments]]
local mTableTools = require('Module:TableTools')
local yesno = require('Module:Yesno')
local p = {}
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame)
return p._main(args)
end
function p._main(args)
local toolbarItems = p.makeToolbarItems(args)
if not toolbarItems then
-- Return the blank string if no arguments were specified, rather than
-- returning empty brackets.
return ''
elseif yesno(args.span) == false then
return string.format(
'(%s)',
toolbarItems
)
else
return string.format(
'<span class="plainlinks%s"%s>(%s)</span>',
type(args.class) == 'string' and ' ' .. args.class or '',
type(args.style) == 'string' and string.format(' style="%s"', args.style) or '',
toolbarItems
)
end
end
function p.makeToolbarItems(args)
local nums = mTableTools.numKeys(args)
local sep = (args.separator or 'pipe') .. '-separator'
sep = mw.message.new(sep):plain()
local ret = {}
for i, v in ipairs(nums) do
ret[#ret + 1] = mw.ustring.gsub(args[v], "%[%[::+(.-)%]%]", "[[:%1]]")
end
if #ret > 0 then
return table.concat(ret, sep)
else
return nil
end
end
return p