Difference between revisions of "Module:Toolbar"
(automatically fix double-leading-colon errors (which are present in many signatures that use this template per Special:LintErrors/multi-colon-escape)) |
m (1 revision imported) |
(No difference)
|
Latest revision as of 22:40, 24 October 2018
This Lua module is used on 770,000+ pages. To avoid large-scale disruption and unnecessary server load, any changes to it should first be tested in the module's /sandbox or /testcases subpages. The tested changes can then be added to this page in a single edit. Please consider discussing changes on the talk page before implementing them. |
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This module implements {{toolbar}}. Please see the template page for documentation.
-- 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