Moduł:Separuj
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Separuj/opis
-- Moduł separuje pozycje podane w parametrach przez opcjonalny
-- separator. Ostatni separator może być podany niezależnie,
-- umożliwiając listy w postaci "foo, bar, baz i qux".
local p = {}
function p._separuj(values,args)
-- Przekonwertuj (na Unikod) sekwencje HTML takie jak np. " " dla spacji.
local separator = args.separator and mw.text.decode(args.separator)
local lacznik = args['łącznik'] and mw.text.decode(args['łącznik'])
local lista = args.lista
local listaSeparator = args.listaSeparator or ';'
local listaRegex="[^"..listaSeparator.."]+"
if lista then
values = {}
for element in mw.ustring.gmatch(lista, listaRegex) do
table.insert(values,element)
end
end
return mw.text.listToText(values, separator, lacznik)
end
local function makeFunction(name)
return function (frame)
local args = require('Module:Arguments').getArgs(frame) --{frameOnly = true}
-- same wartości (tylko parametry nienazwane, nie przypisane przez "=")
local values=require('Module:TableTools').compressSparseArray(args)
return p[name](values,args)
end
end
p.main = makeFunction('_separuj')
return p
--[[
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())
]]