Difference between revisions of "Module:Separated entries"

From annadreambrush.com/wiki
Jump to navigation Jump to search
imported>Izkala
(don't trim named parameters)
imported>Jc86035
m (Testing, does not affect anything using main)
Line 23: Line 23:
 
return mw.text.listToText(args, separator, conjunction)
 
return mw.text.listToText(args, separator, conjunction)
 
end
 
end
+
 
 +
function p.notrim(frame)
 +
local args = getArgs(frame, {
 +
removeBlanks = true,
 +
trim = false
 +
})
 +
return p._notrim(args)
 +
end
 +
 
 +
function p._notrim(origArgs)
 +
local separator = origArgs.separator or ''
 +
local conjunction = origArgs.conjunction or separator
 +
 
 +
args = {}
 +
for k, v in pairs(origArgs) do
 +
-- Discard named parameters.
 +
if type(k) == 'number' then
 +
table.insert(args, v)
 +
end
 +
end
 +
return mw.text.listToText(args, separator, conjunction)
 +
end
 +
 
 
return p
 
return p

Revision as of 15:30, 25 April 2015

Usage

Module:Separated entries serves as a template front-end to mw.text.listToText. It takes any number of positional parameters and pieces them together with |separator=. |conjunction= can be optionally defined if a different separator is desired between the last and second last items. The starting positional parameter can be specified using |start=. Leading and trailing whitespace is stripped; if the |separator= should contain spaces, use the HTML escape code  . Separated entries does not raise any errors by design.

{{#invoke:Separated entries|main|separator=...}}



local getArgs = require('Module:Arguments').getArgs
local p = {}
 
function p.main(frame)
	local args = getArgs(frame, {
		removeBlanks = true,
		trim = false
	})
	return p._main(args)
end
 
function p._main(origArgs)
	local separator = origArgs.separator or ''
	local conjunction = origArgs.conjunction or separator

	args = {}
	for k, v in pairs(origArgs) do
		-- Discard named parameters.
		if type(k) == 'number' then
			table.insert(args, mw.text.trim(v))
		end
	end
	return mw.text.listToText(args, separator, conjunction)
end

function p.notrim(frame)
	local args = getArgs(frame, {
		removeBlanks = true,
		trim = false
	})
	return p._notrim(args)
end

function p._notrim(origArgs)
	local separator = origArgs.separator or ''
	local conjunction = origArgs.conjunction or separator

	args = {}
	for k, v in pairs(origArgs) do
		-- Discard named parameters.
		if type(k) == 'number' then
			table.insert(args, v)
		end
	end
	return mw.text.listToText(args, separator, conjunction)
end

return p