Module:Loop: Difference between revisions

From pronounmail wiki
Jump to navigation Jump to search
Teeth (talk | contribs)
forgot to grab 3rd arg in repi
Teeth (talk | contribs)
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 str._error( 'function repi expects a string as first parameter, received "' .. ( frame.args[1] or '' ) .. '"' )
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 str._error( 'function repi expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' )
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 str._error( 'function repi expects a string to repeat as third parameter, received "' .. ( frame.args[2] or '' ) .. '"' )
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