Documentation for this module may be created at Module:Loops/doc
-- Module for various loops used in various templates on the wiki
-- Author: KockaAdmiralac
-- <nowiki>
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 .. '{{Translation/element|' .. v .. '}} • '
end
return frame:preprocess(ret .. '{{Translation/element}}')
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
-- </nowiki>