Modul:Text: Unterschied zwischen den Versionen

1.163 Bytes hinzugefügt ,  vor 10 Jahren
keine Bearbeitungszusammenfassung
w>PerfektesChaos
(+ ucfirstAll, update uprightNonlatin)
w>Mps
Keine Bearbeitungszusammenfassung
Zeile 292: Zeile 292:
function p.uprightNonlatin( frame )
function p.uprightNonlatin( frame )
     return Text.uprightNonlatin( frame.args[ 1 ] or "" )
     return Text.uprightNonlatin( frame.args[ 1 ] or "" )
end
function p.zip(frame)
local lists = {}
local seps = {}
local defaultsep = frame.args["sep"]
local innersep = frame.args["isep"] or defaultsep
local outersep = frame.args["osep"] or defaultsep
-- Parameter parsen
for k, v in pairs(frame.args) do
local knum = tonumber(k)
if knum then lists[knum] = v else
if string.sub(k, 1, 3) == "sep" then
local sepnum = tonumber(string.sub(k, 4))
if sepnum then seps[sepnum] = v end
end
end
end
-- sofern keine expliziten Separatoren angegeben sind, den Standardseparator verwenden
for i = 1, math.max(#seps, #lists) do
if not seps[i] then seps[i] = defaultsep end
end
if #seps < #lists then return '<span class="error">Weniger Trennzeichen als Listen angegeben</span>' end
-- Listen splitten
local maxListLen = 0
for i = 1, #lists do
lists[i] = mw.text.split(lists[i], seps[i])
if #lists[i] > maxListLen then maxListLen = #lists[i] end
end
local result = ""
for i = 1, maxListLen do
if i ~= 1 then result = result .. outersep end
for j = 1, #lists do
if j ~= 1 then result = result .. innersep end
result = result .. (lists[j][i] or "")
end
end
return result
end
end


Anonymer Benutzer