Module:Template invocation/sandbox: Difference between revisions

Content deleted Content added
tostring numbered args
typo
 
(4 intermediate revisions by 2 users not shown)
Line 94:
for k, v in ipairs(invArgs) do
if type(v) == 'string' and v:find('=', 1, true) then
-- Likely something like 1=foo=bar, wewhich needneeds to dobe itdisplayed as a named arg.
breakelse
ret[#ret + 1] = seps.pipe
ret[#ret + 1] = v
invArgs[k] = nil -- Erase the key so that we don't add the value twice
end
ret[#ret + 1] = seps.pipe
ret[#ret + 1] = v
invArgs[k] = nil -- Erase the key so that we don't add the value twice
end
local invArgs_listkeys = {} -- sort a parameter list; preferable tobetter randomlythan sortedarbitrary outputorder
for k, v_ in pairs(invArgs) do
invArgs_listkeys[#invArgs_listkeys + 1] = tostring(k)
end
table.sort(invArgs_list)keys,
function (a, b)
for i, v in ipairs(invArgs_list) do -- Add named args based on sorted parameter list
-- Sort with keys of type number first, then string.
ret[#ret + 1] = seps.pipe
if type(a) == type(b) then
ret[#ret + 1] = v
return a < b
elseif type(a) == 'number' then
return true
end
end
)
local maybeSpace = '' -- First named parameter should not be separated by a space
for i_, v in ipairs(invArgs_listkeys) do -- Add named args based on sorted parameter list
ret[#ret + 1] = maybeSpace .. seps.pipe
ret[#ret + 1] = tostring(v)
ret[#ret + 1] = seps.equals
ret[#ret + 1] = invArgs[v]
maybeSpace = ' '
end
ret[#ret + 1] = seps.closeb