Module:Separated entries

-- 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.localcompressSparseArray=require('Module:TableTools').compressSparseArraylocalp={}functionp._main(args)localseparator=args.separator-- Decode (convert to Unicode) HTML escape sequences, such as "&#32;" for space.andmw.text.decode(args.separator)or''localconjunction=args.conjunctionandmw.text.decode(args.conjunction)orseparator-- Discard values before the starting parameter.localstart=tonumber(args.start)ifstartthenfori=1,start-1doargs[i]=nilendend-- Discard named parameters.localvalues=compressSparseArray(args)returnmw.text.listToText(values,separator,conjunction)endlocalfunctionmakeInvokeFunction(separator,conjunction,first)returnfunction(frame)localargs=require('Module:Arguments').getArgs(frame)args.separator=separatororargs.separatorargs.conjunction=conjunctionorargs.conjunctionargs.first=firstorargs.firstreturnp._main(args)endendp.main=makeInvokeFunction()p.br=makeInvokeFunction('<br />')p.comma=makeInvokeFunction(mw.message.new('comma-separator'):plain())returnp