Module:Loops

-- Module for various loops used in various templates on the wiki -- Author: KockaAdmiralac -- local p = {}; function template_args return mw.getCurrentFrame:getParent.args end function p.translation(frame) local args = template_args local ret = '' for i, v in ipairs(args) do ret = ret .. ' • ' end return frame:preprocess(ret .. '') end function p.dots(frame) local args = template_args local ret = '' for i, v in ipairs(args) do ret = ret .. v .. ' • ' end ret = string.gsub(ret, ' • $', '') return ret end function p.loop(frame) local args = template_args local cols = frame.args[1] local template = frame.args[2] local ret = '' local data = {} local del = 0 if frame.args[3] then del = tonumber(frame.args[3]) end for i, v in ipairs(args) do local ind = i - del local index = math.ceil(ind / cols) if ind > 0 then if not(data[index]) then data[index] = {} end data[index][((ind - 1) % cols) + 1] = v end end for i, v in ipairs(data) do ret = ret .. '{' .. '{' .. template .. '/element|' for i2, v2 in ipairs(v) do ret = ret .. mw.text.trim(v2) .. '|' end ret = ret .. '}}' end return frame:preprocess(ret) end return p --