Difference between revisions of "Module:Used by/Sandbox"
Line 6: | Line 6: | ||
function p.classes(frame) | function p.classes(frame) | ||
+ | local first = nil | ||
+ | local count = -1 | ||
local args = frame.args | local args = frame.args | ||
− | + | for arg in pairs(args) do | |
− | for | + | first = first or arg |
count = count + 1 | count = count + 1 | ||
end | end | ||
− | if | + | if first == nil then |
args = frame:getParent().args | args = frame:getParent().args | ||
− | for | + | for arg in pairs(args) do |
+ | first = first or arg | ||
count = count + 1 | count = count + 1 | ||
end | end |
Revision as of 06:21, 18 March 2023
Documentation for this module may be created at Module:Used by/Sandbox/doc
local p = {} function common_string(args) return mw.getCurrentFrame():expandTemplate{title='Common string', args=args} end function p.classes(frame) local first = nil local count = -1 local args = frame.args for arg in pairs(args) do first = first or arg count = count + 1 end if first == nil then args = frame:getParent().args for arg in pairs(args) do first = first or arg count = count + 1 end end local first = table.remove(args, 1) assert(false, 'First:' .. first) count = count - 1 if first == 'all' then return common_string{'infobox-used-by-all'} elseif first == 'all-except' then return common_string{'infobox-used-by-all-except-' .. count, unpack(args)} else return common_string{'infobox-used-by-' .. count, unpack(args)} end end return p