Module:Editing advice

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