Module:MultiItems

local p = {} local util = require("Module:Utility")

function p.getItems(frame) local tArgs = util.getArgs(frame) local items = tArgs[1] or "" local prefix = tArgs[2] or "" local size = tArgs[3] local suffix = tArgs[4] or "" if size == "P" then size = "40" local outType = "P" elseif not size or size == "" then size = "25" end

items = mw.ustring.gsub(items, "^%s*(.-)%s*$", "%1") or '' -- check for !! (! at the end of item) -- replace with ^! -- ^ will be replaced back to ! before returning items = mw.ustring.gsub(items, "!!", "^!")

local itemsFile = "" local space = ""

for it in mw.text.gsplit(items, "%s*%$%s*") do

local lcIt = mw.ustring.gsub(it, "^([^%(]+)%s%(([^%d]+%d*)%)$", "%1-%2")       if not lcIt then lcIt = it end

lcIt = mw.ustring.gsub(mw.ustring.lower(lcIt), "[':%,%.]", "") if suffix and suffix ~= "" then it = it .. " " .. suffix end

itemsFile = itemsFile .. space .. "[[File:"                   .. prefix                    .. "-"                    .. lcIt                    .. ".png|x"                    .. size                    .. "px|link="                    .. it					.. "]]" if outType and outType == "P" then itemsFile = itemsFile .. " " .. it .. " " end space = " " end

-- replace back any ! (delimiter) changed earlier itemsFile = mw.ustring.gsub(itemsFile, "%^", "!")

return itemsFile end

return p

-- --