Módulo:Separated entries
Aspeto
This módulo was adapted from Module:Separated entries on Wikipedia.
Adaptation is noted for reference and attribution only. This módulo may differ from the original in function or in usage. The documentation on Wikipedia may be helpful in understanding this módulo.
Adaptation is noted for reference and attribution only. This módulo may differ from the original in function or in usage. The documentation on Wikipedia may be helpful in understanding this módulo.
-- 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.
_pageName='{{#replace:{{PAGENAME}}|'|\'}}'
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)
local out = {}
if #values > 0 and args.before then
out[#out+1] = args.before
end
out[#out+1] = mw.text.listToText(values, separator, conjunction)
if #values > 0 and args.after then
out[#out+1] = args.after
end
return table.concat(out)
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame)
return p._main(args)
end
return p