Moduł:Separuj

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
Template-info.png Dokumentacja modułu [zobacz] [edytuj] [historia] [odśwież]

Moduł:Separuj przyjmuje zmienną liczbę parametrów pozycyjnych (nie przypisywanych przez znak równości '=') i łączy/oddziela je podanymi separatorami. Używa funkcji mw.text.listToText.

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 powinien zawierać spację, wstawiamy ją w postaci kodu HTML:  .

Opis parametrów[edytuj kod]

| separator = opcjonalny - separator dla łączonych pozycji

| łącznik = opcjonalny - separator pomiędzy dwoma ostatnimi pozycjami

Wartości domyślne: | separator = ", ", | łącznik = " oraz " (patrz mw.text.listToText).

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

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'])
	
	--[[ 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 ]]
	
	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())
]]