Module:Editing advice
MyWikiBiz, Author Your Legacy — Friday November 15, 2024
Jump to navigationJump to searchUsage
Template:Important There is one callable function:
{{#invoke:Editing advice|getAdvice}}
It iterates through the provided params, using what is discovered appropriately, to fetch and organise the output of Template:Tlsc.
local getArgs = require('Module:Arguments').getArgs local p = {} -- Fetch expansions of Editing advice meta templates local function getRequestedAdvice(haystack, needle, pages) -- if a request is made for that advice if string.match(haystack, needle) then return mw.getCurrentFrame():expandTemplate{ title = 'Editing advice/meta/' .. needle, args = pages or {} } end return '' end -- Return concatenation of fetched template expansions local function compileRequestedAdvice(about, pages) return getRequestedAdvice(about, 'preview', pages) .. getRequestedAdvice(about, 'summary') .. getRequestedAdvice(about, 'sandbox') end --[[ Main function: iterates through provided params and uses what is discovered to call for and organise the requested output ]] function p._getAdvice(cleanargs) -- Create capturing vars for data local about = '' local pages = {} local section = {} local f = mw.getCurrentFrame() -- Iterate through provided params for key, value in pairs(cleanargs) do -- If the param specifies the advice requested if key == 'about' then -- store the value about = value -- If the param specifies the section heading option elseif key == 'section' then -- store the value section[1] = value else --[[ If neither of the above, these params must be pages so store the values as they are processed ]] pages[#pages + 1] = value end end -- Output concatenation of fetched strings return f:expandTemplate{ title = 'Editing advice/meta/start', args = section } .. compileRequestedAdvice(about, pages) .. f:expandTemplate{ title = 'Editing advice/meta/end' } end --Get and cleanup frame args and pass them to _getAdvice function p.getAdvice(frame) local args = getArgs(frame) return p._getAdvice(args) end return p