Jump to content

Module:ArgRest

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Lemondoge (talk | contribs) at 03:56, 29 March 2023 (lets see if GPT-4 can do thing). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

p = {}

function p.main(frame)
	local function reverseSanitization(code)
    	local noWiki, preserve = code, {}

    	if noWiki:match('nowiki') then
        	local placeholder = ('6'):char()
        	noWiki = mw.text.unstripNoWiki(noWiki)
        	noWiki = noWiki:gsub('%%', placeholder):gsub('&lt;', '<'):gsub('&gt;', '>')

        	for k in noWiki:gmatch('&.-;') do
	            if not preserve[k] then
                	preserve[k] = true
                	table.insert(preserve, (k:gsub('&', '&amp;')))
                	noWiki = noWiki:gsub('(&.-;)', '%%%s')
            	end
        	end

        	noWiki = mw.text.nowiki(noWiki):format(unpack(preserve)):gsub(placeholder, '%%')
    	end

    	return noWiki
	end
	local a = reverseSanitization(frame.args['1'])
	local processed = a:gsub("{{{([^{}<>|]+)(|?([^{}<>|]*)}}", "1")
end