Moduł:Separuj

Z Wikipedii, wolnej encyklopedii
 Dokumentacja modułu [zobacz] [edytuj] [historia] [odśwież]

Separuj przyjmuje zmienną liczbę parametrów i łączy je podanymi separatorami.

Użycie[edytuj kod]

{{#invoke:Separuj|main|...|...}}
{{#invoke:Separuj|main|...|...|separator=; }}
{{#invoke:Separuj|main|separator=; |łącznik= i |...|...}}

Białe znaki są usuwane. Jeśli separator/łącznik ma zawierać spację, wstawiamy ją w postaci kodu HTML, np. przez  .

Opis parametrów[edytuj kod]

| 1 = i dalsze, opcjonalne, pozycje do połączenia

| separator = , opcjonalny, separator dla łączonych pozycji, domyślnie ,  (przecinek i spacja)

| łącznik = , opcjonalny, separator pomiędzy dwoma ostatnimi pozycjami, domyślnie  oraz  (spacja oraz spacja).

Przykład[edytuj kod]

{{#invoke:Separuj|main|1|2|3|4}} → 1, 2, 3 oraz 4

{{#invoke:Separuj|main|1|2}} → 1 oraz 2

{{#invoke:Separuj|main|1|2|3|4|separator=; }} → 1; 2; 3 oraz 4

{{#invoke:Separuj|main|separator=; |łącznik= i |1|2|3|4}} → 1; 2; 3 i 4

{{#invoke:Separuj|main|separator=; |łącznik2= i |1|2|3|4}} → 1; 2; 3 oraz 4

{{#invoke:Separuj|main|separator=; |łącznik2= i |1|2}} → 1 i 2

Błędy[edytuj kod]

Błędy należy zgłaszać na stronie Wikipedia:Kawiarenka/Kwestie techniczne.

Zobacz też[edytuj kod]



-- 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 lacznik2 = (args['łącznik2'] and mw.text.decode(args['łącznik2']))
	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
	
	if lacznik2 and (#values == 2) then
		lacznik = lacznik2
	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())
]]