Modul:IterListe

Aus Dreamlight Valley Wiki

Die Dokumentation für dieses Modul kann unter Modul:IterListe/Doku erstellt werden

local p = {}

-- Splittet "A, B, C" sauber, trimmt Leerzeichen, ignoriert leere Einträge
local function splitCommaList(text)
	if not text or text == "" then return {} end
	local out = {}
	for item in mw.text.gsplit(text, ",", true) do
		item = mw.text.trim(item)
		if item ~= "" then
			table.insert(out, item)
		end
	end
	return out
end

function p.run(frame)
	local args = frame:getParent().args

	local liste  = args.liste or ""
	local aktion = args.aktion or ""

	if aktion == "" then
		return "" -- kein Fehler, einfach nichts ausgeben
	end

	local cat = args.cat
	local ctx = args.ctx
	local catname = args.catname

	local items = splitCommaList(liste)
	if #items == 0 then return "" end

	local result = {}
	for _, item in ipairs(items) do
		table.insert(result,
			frame:expandTemplate{
				title = aktion,
				args = {
					item,
					cat = cat,
					ctx = ctx,
					catname = catname
				}
			}
		)
	end

	return table.concat(result, " ")
end

return p