Modul:IterListe
Aus Dreamlight Valley Wiki
Die Dokumentation für dieses Modul kann unter Modul:IterListe/Doku erstellt werden
local p = {}
local function trim(s)
return mw.text.trim(s or "")
end
local function split_list(s)
s = s or ""
-- Zeilenumbrüche -> Komma
s = s:gsub("\r\n", "\n"):gsub("\n", ",")
-- Semikolon auch erlauben
s = s:gsub(";", ",")
-- NBSP -> normales Space
s = s:gsub("\194\160", " ")
local out = {}
for part in s:gmatch("[^,]+") do
part = trim(part)
if part ~= "" then
table.insert(out, part)
end
end
return out
end
function p.run(frame)
local args = frame.args
local liste = args.liste or ""
local action = args.aktion or ""
local cat = args.cat or ""
local ctx = args.ctx or ""
if trim(liste) == "" or trim(action) == "" then
return ""
end
local items = split_list(liste)
local res = {}
for _, item in ipairs(items) do
table.insert(res, frame:expandTemplate{
title = action,
args = { item, cat = cat, ctx = ctx }
})
end
return table.concat(res, " ")
end
return p