×
Create a new article
Write your page title here:
We currently have 223 articles on Farthest Frontier. Type your article name above or create one of the articles listed here!



    Farthest Frontier

    Module:Separated entries

    Usage[edit source]

    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. To add deliberate leading and trailing whitespace, use the HTML escape code   for a space and 
 for a "newline". Separated entries does not raise any errors by design.

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

    See also[edit source]


    -- This module takes positional parameters as input and concatenates them with
    -- an optional separator. The final separator (the "conjunction") can be
    -- specified independently, enabling natural-language lists like
    -- "foo, bar, baz and qux". The starting parameter can also be specified.
    
    local compressSparseArray = require('Module:TableTools').compressSparseArray
    local p = {}
    
    function p._main(args)
    	local separator = args.separator
    		-- Decode (convert to Unicode) HTML escape sequences, such as " " for space.
    		and mw.text.decode(args.separator) or ''
    	local conjunction = args.conjunction and mw.text.decode(args.conjunction) or separator
    	-- Discard values before the starting parameter.
    	local start = tonumber(args.start)
    	if start then
    		for i = 1, start - 1 do args[i] = nil end
    	end
    	-- Discard named parameters.
    	local values = compressSparseArray(args)
    	return mw.text.listToText(values, separator, conjunction)
    end
    
    local function makeInvokeFunction(separator, conjunction, first)
    	return function (frame)
    		local args = require('Module:Arguments').getArgs(frame)
    		args.separator = separator or args.separator
    		args.conjunction = conjunction or args.conjunction
    		args.first = first or args.first
    		return p._main(args)
    	end
    end
    
    p.main = makeInvokeFunction()
    p.br = makeInvokeFunction('<br />')
    p.comma = makeInvokeFunction(mw.message.new('comma-separator'):plain())
    
    return p
    
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.