Khác biệt giữa bản sửa đổi của “Mô đun:For loop”
Nội dung được xóa Nội dung được thêm vào
Nhập từ en:Module:ForLoop (559231221) |
Nhập từ en:Module:ForLoop phiên bản 03:33, 18 January 2014 Mr. Stradivarius |
||
Dòng 1:
-- This module implements {{for loop}}.
local getArgs = require('Module:Arguments').getArgs
p = {}
function p.main(frame)
local args = getArgs(frame, {
trim = false,
removeBlanks = false
})
return p._main(args)
end
local template = args['call'] or 'void'
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 = ''
for i, v in ipairs(variableVals) do
v = mw.text.trim(v) -- trim whitespace
local targs = constantArgs
targs[variableParam] = variableValPrefix .. v .. variableValPostfix
local expandedTemplate = p.callTemplate(template, targs)
result = result .. expandedTemplate
if variableVals[i + 1] then
result = result .. sep
end
end
return result
end
local key = args[keyArg]
key = tonumber(key) or key
local value = args[valArg]
constantArgs[key] = value
end
return constantArgs
end
end
-- 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, v in
if num then
nums[#nums + 1] = tonumber(num)
end
end
table.sort(nums)
return nums
end
function p.
return mw.getCurrentFrame():expandTemplate{title = template, args = targs}
end
return p
|