If you find this page useful and would like to be notified of changes made to this page, start by inputting your email below.
powered by ChangeDetection
Documentation for this module may be created at Module:Unsubst/doc
local p = {} local specialParams = { ['$N'] = 'template name', ['$B'] = 'template content', } p[''] = function ( frame ) if not frame:getParent() then error( '{{#invoke:Unsubst|unsubst}} makes no sense without a parent frame' ) end for k, v in pairs( specialParams ) do if not frame.args[k] then error( '{{#invoke:Unsubst|unsubst}} requires parameter ' .. k .. ' (' .. v .. ')' ) end end if frame:preprocess( '{{subst:NAMESPACE}}' ) ~= '{{subst:NAMESPACE}}' then ---- substing -- Combine passed args with passed defaults local args = {} for k, v in pairs( frame.args ) do if not specialParams[k] then if v == '__DATE__' then v = mw.getContentLanguage():formatDate( 'F Y' ) end args[k] = v end end for k, v in pairs( frame:getParent().args ) do args[k] = v end -- Now, build an equivalent template invocation -- First numbered args, then named local ret = '{{' .. frame.args['$N'] for k, v in ipairs( args ) do if string.find( v, '=', 1, true ) then -- likely something like 1=foo=bar, we need to do it as a named arg break end ret = ret .. '|' .. v args[k] = nil end for k, v in pairs( args ) do ret = ret .. '|' .. k .. '=' .. v end return ret .. '}}' else ---- Not substing -- Just return the "body" return frame.args['$B'] end end return p