Difference between revisions of "Module:For nowiki"
Jump to navigation
Jump to search
blackwiki>Pppery |
blackwiki>MZMcBride (cnt --> count) |
||
| Line 11: | Line 11: | ||
local iterator | local iterator | ||
for key, value in pairs(args) do | for key, value in pairs(args) do | ||
| − | if not tonumber(key) and key ~= "i" and key ~= " | + | if not tonumber(key) and key ~= "i" and key ~= "count" then |
argstosub[key] = value | argstosub[key] = value | ||
end | end | ||
end | end | ||
| − | local | + | local countArg = args.count and tonumber(args.count); |
| − | if | + | if countArg then |
offset = 0 | offset = 0 | ||
args = {} | args = {} | ||
| − | for i = 1, | + | for i = 1, countArg do |
args[i] = i | args[i] = i | ||
end | end | ||
Revision as of 03:24, 15 November 2017
Implements {{For nowiki}}.
local p = {}
function p.main(frame)
local args = frame:getParent().args
local sep = args[1]
local code = mw.text.unstripNoWiki(args.code or args[2])
local offset = args.code and 1 or 2
local result = ""
local argstosub = {}
local iterator
for key, value in pairs(args) do
if not tonumber(key) and key ~= "i" and key ~= "count" then
argstosub[key] = value
end
end
local countArg = args.count and tonumber(args.count);
if countArg then
offset = 0
args = {}
for i = 1, countArg do
args[i] = i
end
end
for i, value in ipairs(args) do
if i > offset + 1 then
result = result .. sep
end
if i > offset then
argstosub["i"] = i - offset
argstosub["1"] = value
local actualCode = code:gsub("{{{([^{}|]*)|?[^{}]*}}}", argstosub)
result = result .. frame:preprocess(actualCode)
end
end
return result
end
return p