Jump to content

Module:Sandbox/Aidan9382

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Aidan9382 (talk | contribs) at 11:55, 4 May 2023 (testing). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Sandboxes:


Any linter errors here are likely unintentional, and may be fixed

require('Module:Module wikitext')._addText('{{User:Aidan9382/sandbox/header|nolint=y}}')
require("strict")
local p = {}

function p.main(data)
	return "<div style=text-align:right;font-size:80%>This does nothing as of right now. "..os.time().."</div>"
end

function p.iloveregexold(data)
	local r = "%[?%[?.-:([^{|]+)%]?%]?"
	local args = {mw.ustring.match("[[File:Hey.jpg|thumb|left|250px]]",r)}
	return table.concat(args," -- ")
end
function p.iloveregex(data)
	--This assumes [[ is present, and that therefore ]] is present
	local r = "%[%[%a-:([^{|]+)(.+)%]%]"
	local args = {mw.ustring.match("[[File:Hey.jpg|thumb|left|250px|All for [[Module:Excerpt/portals]]|alt=text]]",r)}
	return table.concat(args," -- ")
end

function p.parentingLogic(frame)
	--Note: Not even sure this thing goes beyond 1 parent, but have overcomplicated code anyways
	local parentChain = {}
	local newframe = frame
	while true do
		local parent = newframe:getParent()
		if not parent then
			break
		end
		newframe = parent
		parentChain[#parentChain+1] = parent
	end
	local parentText = ""
	for i,p in next,parentChain do
		parentText = parentText .. " parent"..i.."="..p:getTitle()
	end
	return "frame="..frame:getTitle()..parentText.." mw.gct="..mw.title.getCurrentTitle().text
end

p["module-use"] = function(frame)
	local parentLogicStuff = p.parentingLogic(frame)
	local testlogic = "\n\n"
	local i = 1
	while true do
		local c = frame.args["_test"..i]
		if c then
			testlogic = testlogic .. "_test"..i.."="..c
		else
			break
		end
		i = i + 1
	end
	return parentLogicStuff..testlogic
end

function p.getargs(frame)
	local text = "Frame arguments:"
	for k,v in pairs(frame.args) do
		k,v = tostring(k), tostring(v)
		text = text .. "\n\n'<code>" .. mw.text.nowiki(mw.text.unstrip(k)) .. "</code>' = '<code>" .. mw.text.nowiki(mw.text.unstrip(v)) .. "</code>'"
	end
	return text
end

function p.testGP(frame)
	local s1 = "Frame args:"
	local s2 = "getParameters args:"
	local p1 = frame.args
	local p2 = require("Module:GetParameters").getParameters(p1, {"a", "b", "c"})
	for k,v in pairs(p1) do
		s1 = s1 .. "\n'" .. tostring(k) .. "' = '" .. v .. "'"
	end
	for k,v in pairs(p2) do
		s2 = s2 .. "\n'" .. tostring(k) .. "' = '" .. v .. "'"
	end
	return s1 .. "\n\n" .. s2 .. "\n\n\n"
end

function p.moduleGivingMagicWords(frame)
	local out = [[
{{DISPLAYTITLE:<i title="test">{{FULLPAGETITLE}}</i>}}
{{DEFAULTSORT:ATest}}]]
	if frame.args.process then
		return frame:preprocess(out)
	else
		return out
	end
end

function p.testframe() --For the Debug console
	local f = mw.getCurrentFrame()
	f.getParent = function() return f end
	return f
end

function p:namecall()
	return self
end

return setmetatable(p,{
	__index=function(t,k)
		mw.log("Attempted to access unknown function '"..tostring(k).."'\n"..debug.traceback())
		return function()
			return "<span class=\"error\">Attempted to access unknown function '"..tostring(k).."'</span>"
			--local frame = mw.getCurrentFrame()
			--local traceback = frame:extensionTag("syntaxhighlight", debug.traceback(), {lang="text"})
			--return "<span class=\"error\">Attempted to access unknown function '"..tostring(k).."'</span>\n"..traceback
		end
	end
})