Difference between pages "Module:If empty" and "Module:If empty/sandbox"
(Difference between pages)
Jump to navigation
Jump to search
m (24 revisions imported) |
m (2 revisions imported) |
||
| Line 1: | Line 1: | ||
| − | {{ | + | local p = {} |
| + | |||
| + | function p.main(frame) | ||
| + | local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:If empty', removeBlanks = false}) | ||
| + | |||
| + | local lastk = 0 | ||
| + | for k,v in ipairs(args) do | ||
| + | if v ~= '' then | ||
| + | return v | ||
| + | end | ||
| + | lastk = k | ||
| + | end | ||
| + | |||
| + | -- For backwards compatibility reasons, the first 8 parameters can be unset instead of being blank, | ||
| + | -- even though there's really no legitimate use case for this. At some point, this will be removed. | ||
| + | for i = lastk + 1, 9 do | ||
| + | if args[i] and args[i] ~= '' then | ||
| + | -- If any uses of this template depend on the behavior above, add them to a tracking category. | ||
| + | -- This is a rather fragile, convoluted, hacky way to do it, but it ensures that this module's output won't be modified | ||
| + | -- by it. | ||
| + | frame:extensionTag('ref', '[[Category:Instances of Template:If_empty missing arguments]]', {group = 'TrackingCategory'}) | ||
| + | frame:extensionTag('references', '', {group = 'TrackingCategory'}) | ||
| + | |||
| + | return args[i] | ||
| + | end | ||
| + | end | ||
| + | |||
| + | end | ||
| + | |||
| + | return p | ||