Module:Loop: Difference between revisions
Jump to navigation
Jump to search
forgot to grab 3rd arg in repi |
No edit summary |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 16: | Line 16: | ||
local text = frame.args[3]; | local text = frame.args[3]; | ||
if not index_var then | if not index_var then | ||
return | return p._error( 'function repi expects a string as first parameter, received "' .. ( frame.args[1] or '' ) .. '"' ) | ||
end | end | ||
if not repetitions then | if not repetitions then | ||
return | return p._error( 'function repi expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' ) | ||
end | end | ||
if not text then | if not text then | ||
return | return p._error( 'function repi expects a string to repeat as third parameter, received "' .. ( frame.args[3] or '' ) .. '"' ) | ||
end | end | ||
str = '' | str = '' | ||
| Line 29: | Line 29: | ||
end | end | ||
return str | return str | ||
end | |||
--[[ | |||
Helper function to handle error messages. | |||
]] | |||
function p._error( error_str ) | |||
local frame = mw.getCurrentFrame() | |||
local error_str = '<strong class="error">Loop Module Error: ' .. error_str .. '</strong>' | |||
return error_str | |||
end | end | ||
return p | return p | ||
Latest revision as of 03:00, 18 May 2026
Documentation for this module may be created at Module:Loop/doc
--[[
This module is for generating looped content in templates and pages.
]]
local p = {}
--[[
Usage: {{#invoke|Loop|repi|i|10|number: i}}
]]
function p.repi( frame )
local index_var = frame.args[1]
local repetitions = tonumber( frame.args[2] )
local text = frame.args[3];
if not index_var then
return p._error( 'function repi expects a string as first parameter, received "' .. ( frame.args[1] or '' ) .. '"' )
end
if not repetitions then
return p._error( 'function repi expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' )
end
if not text then
return p._error( 'function repi expects a string to repeat as third parameter, received "' .. ( frame.args[3] or '' ) .. '"' )
end
str = ''
for i=1,repetitions do
str = str .. string.gsub(text, index_var, i)
end
return str
end
--[[
Helper function to handle error messages.
]]
function p._error( error_str )
local frame = mw.getCurrentFrame()
local error_str = '<strong class="error">Loop Module Error: ' .. error_str .. '</strong>'
return error_str
end
return p