Module:Sandbox/Tom.Reding/sandbox explained

--use "local arg1 = frame.args[1]" for sandboxing via #invoke--use "local args = frame:getParent.args" for sandboxing via template

local p =

function p.doc(frame) local auto = frame.args[1] or local base = mw.title.getCurrentTitle.baseText local n = '\n' local code = "

"..n.. ""..n.. "

" local args = return frame:expandTemplate end

function p.amdb(frame) local args_module = require('Module:Arguments') local args = args_module.getArgs(frame,) return (args[1] or 'no1')..'&'..(args['blah'] or 'noblah')end

function p.yndb(frame) local yesno = require('Module:Yesno') return yesno(frame.args[1], true)end

function p.sc(frame) local special_chars = '([%%%(%)%.%+%-%*%?%[%]%^%$])' local esc = frame.args[1]:gsub(special_chars, '%%%1') -- escape each special character return escend

function p.template_outside_shell(frame) local banner_name = mw.text.trim(frame.args[1]) -- name of template to look for, e.g. WikiProject Finland local banner_name_u = mw.text.trim(frame.args[1]) -- name of template to look for, e.g. WikiProject Finland local banner_name_s = mw.text.trim(frame.args[1]) -- name of template to look for, e.g. WikiProject Finland local WPBSredirects = mw.loadData('Module:WikiProject banner/config').banner_shell.redirects -- load the current set of redirects to Template:WikiProjct banner shell local page_content = mw.title.getCurrentTitle:getContent -- get content of current page local content_without_shell for capture in mw.ustring.gmatch(page_content, '%b') do -- look for possible templates on page for _, redirect in ipairs(WPBSredirects) do if mw.ustring.find(capture, '^}$') then -- found a banner shell local capture_u = capture local capture_s = capture --loop test --local special_chars = --for _, chr in ipairs(special_chars) do -- escape each special character -- banner_name_u = mw.ustring.gsub(banner_name_u, '%'..chr, '%%'..chr) -- banner_name_s = string.gsub(banner_name_s, '%'..chr, '%%'..chr) -- capture = capture:gsub('%'..chr, '%%'..chr) --returns '%�' when encountering "listas=100%" -- capture_u = mw.ustring.gsub(capture_u, '%'..chr, '%%'..chr) --returns '%%' -- capture_s = string.gsub(capture_s, '%'..chr, '%%'..chr) --returns '%�' --end --[set] test local special_chars = '([%%%(%)%.%+%-%*%?%[%]%^%$])' banner_name = banner_name:gsub(special_chars, '%%%1') -- escape each special character capture = capture:gsub(special_chars, '%%%1') --returns '%%' hen encountering "listas=100%" capture_u = mw.ustring.gsub(capture_u, special_chars, '%%%1') --returns '%%' capture_s = string.gsub(capture_s, special_chars, '%%%1') --returns '%%' content_without_shell = mw.ustring.gsub(page_content, capture, ) -- remove banner shell content from page content if (true) then return '----\n'..banner_name..'\n

:gsub

\n'..capture..'\n

ustring

\n'..capture_u..'\n

string

\n'..capture_s..'\n

orig

\n'..content_without_shell end break -- ideally want to break out from both for loops now end end if content_without_shell then break end end local template_outside_shell if content_without_shell then -- banner shell was found if mw.ustring.find(content_without_shell, '