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 |