Modul:For loop
Robâ
TemplateStyles' src
attribute must not be empty.
Modul nèka ènilai lasta èyangghuy halè umum. Modul nèka ampon massa' tor èrèken minangka pardhika dâri bug tor lasta otabâ saḍiya èyangghuy nâng kennengan sè pas nâng ka'dimma bisaos. Modul nèka lasta èrasanè nâng halaman-halaman bhântowan tor brèttra sombhâr informasi Wikipedia laènna minangka todhuwân ka'angghuy pamerdhiyan para pangangghuy anyar. Sè ngorangè tempoan server tor output sè ta' èkaporon, modul nèka wajib èpraghi kelabân halaman bak bâddhi tor kasus oddhi tèmbhâng ghi' ngalakonina beccè'an oddhi-tor-lopot marsoddhi. |
TemplateStyles' src
attribute must not be empty.
Modul panèka kaèngkobhi. Modul nèka mèlaghis kantara sè èyangghuy kelabân andhân kaca, otabâ segghut èsubstitusi'aghi. Lakaran vandalisme otabâ kaklèrowan abhâdhi pangaro dâ' andhân kaca, tor beccè'an kèni' kèngèng maparèng tompoan rajâ dâ' server, modul nèka èsabhi, èlinḍhungè otabâ è'èngkobhi sabâgiyân ḍâri sabhârâng pameccè'an. |
TemplateStyles' src
attribute must not be empty.
This Lua module is used on approximately 39.000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
This module implements Template:For loop (edit | talk | history | links | watch | logs). Please see the template page for documentation.
-- This module implements {{for loop}}.
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local p = {}
function p.main(frame)
local args = getArgs(frame, {
trim = false,
removeBlanks = false
})
return p._main(args)
end
function p._main(args)
local template = args['call'] or 'void'
local calltemplates = yesno(args.substall or "", true) or not mw.isSubsting()
local variableParam = args.pv
variableParam = tonumber(variableParam) or variableParam or 1 -- fix for positional parameters
local variableValPrefix = args.prefix or ''
local variableValPostfix = args.postfix or ''
local sep = args[1] or ''
local constantArgs = p.getConstants(args)
local variableVals = p.getVariableVals(args)
local result = ''
local addSeparator = false;
for _, v in ipairs(variableVals) do
v = mw.text.trim(v)
if #v > 0 or not yesno(args.skipBlanks) then
if addSeparator then
result = result .. sep
end
addSeparator = true;
local targs = constantArgs
targs[variableParam] = variableValPrefix .. v .. variableValPostfix
if calltemplates then
local output = p.callTemplate(template, targs)
if #mw.text.trim(output) == 0 then
addSeparator = false
end
result = result .. output
else
local makeTemplate = require('Module:Template invocation').invocation
result = result .. makeTemplate(template, targs)
end
end
end
return result
end
function p.getConstants(args)
local constantArgNums = p.getArgNums(args, 'pc', 'n')
local constantArgs = {}
for _, num in ipairs(constantArgNums) do
local keyArg = 'pc' .. tostring(num) .. 'n'
local valArg = 'pc' .. tostring(num) .. 'v'
local key = args[keyArg]
key = tonumber(key) or key
local value = args[valArg]
constantArgs[key] = value
end
return constantArgs
end
function p.getVariableVals(args)
local variableVals = {}
if args.start or args.stop or args.by then
if args[2] then
error("Both start/stop/by and numbered parameters specified")
end
local start = tonumber(args.start or 1)
local stop = tonumber(args.stop or 1)
local by = tonumber(args.by or 1)
for i = start, stop, by do
variableVals [#variableVals + 1] = i
end
else
for i, v in ipairs(args) do
if i ~= 1 then
variableVals[i - 1] = v
end
end
end
return variableVals
end
function p.getArgNums(args, prefix, suffix)
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix and suffix.
local nums = {}
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
for k, _ in pairs(args) do
local num = tostring(k):match(pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
table.sort(nums)
return nums
end
function p.callTemplate(template, targs)
return mw.getCurrentFrame():expandTemplate{title = template, args = targs}
end
return p