Toggle menu
15
236
70
27.5K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

This module implements {{toolbar}}. Please see the template page for documentation.

See also



-- 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
Contents