Module:ArgumentPairs demo
This module shows the sorted name-value combinations from parameter definitions like in a template call.
Example (the f is not part of the parameter definitions):
{{#invoke:ArgumentPairs demo|f|hi=c|g|e=y|d|h=i}}
gives:
name | value |
---|---|
1 | g |
2 | d |
e | y |
h | i |
hi | c |
Assignments are done from left to right, in the case of multiple assignments to the same parameter (named or unnamed) the last one counts:
{{#invoke:ArgumentPairs demo|f|1=q|hi=c|g|e=y|d|h=i|e=k|2=p}}
gives:
name | value |
---|---|
1 | g |
2 | p |
e | k |
h | i |
hi | c |
Types
Types of the results of "for n,v in frame:argumentPairs() do" inside the lua program:
- n is of type number if it is implicitly given, or if the supplied wikitext for it represents an integer value, otherwise string
- v is of type string
local p = {}
function comp(x,y)
return tostring(x[1])<tostring(y[1])
end
function p.f(frame)
local t={}
for n,v in frame:argumentPairs() do table.insert (t,{n,v}) end
table.sort (t,comp)
r = '{|class="wikitable sortable"\n!name!!value\n'
for i,nv in ipairs(t) do r = r..'|-\n|'..nv[1]..'||'..nv[2]..'\n' end
r=r..'|}'
return r
end
return p