Module:ProcessArgs
From SWGoH Wiki
Jump to navigationJump to searchDocumentation for this module may be created at Module:ProcessArgs/doc
local p = {} function p.norm( origArgs ) if type( origArgs ) ~= 'table' then origArgs = mw.getCurrentFrame():getParent().args end local args = {} for k, v in pairs( origArgs ) do v = mw.text.trim( tostring( v ) ) if v ~= '' then args[k] = v end end return args end function p.merge( origArgs, parentArgs, norm ) if type( origArgs ) ~= 'table' then norm = origArgs local f = mw.getCurrentFrame() origArgs = f.args parentArgs = f:getParent().args end local args = {} for k, v in pairs( origArgs ) do v = mw.text.trim( tostring( v ) ) if not norm or norm and v ~= '' then args[k] = v end end for k, v in pairs( parentArgs ) do v = mw.text.trim( v ) if ( not norm or norm and v ~= '' ) and not args[k] then args[k] = v end end return args end -- Usage: {{#invoke:ProcessArgs|passThrough|<template name>}} -- Calls the provided template with all the arguments available in the current context. -- For instance, if the template {{A}} invokes this with a template 'B', and a page transcludes {{A}} and supplies arguments to it ({{A|arg1|arg2}}, calling this will return the equivalent of {{B|arg1|arg2}} function p.passThrough( frame ) return frame:expandTemplate{title = frame.args[1], args = mw.getCurrentFrame():getParent().args} end return p