Module:Utility

From PKC
Revision as of 04:01, 10 February 2022 by Benkoo (talk | contribs)
Jump to navigation Jump to search

Documentation for this module may be created at Module:Utility/doc

p = {}

function p.monthNumberToName(a)
	arg1 = mw.getCurrentFrame().args[1]
	monthNames = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
	monthNumber = tonumber(arg1)
	return monthNames[monthNumber]
end

function p.returnHTMLText(a)
	pageContent = tostring(mw.getCurrentFrame().args[1])
	local div = mw.html.create( 'syntaxhighlight' )
	div
     :attr( 'lang', 'HTML' )
     :wikitext( pageContent )
	return a:preprocess(tostring( div ))
end

function p.returnNowkiText(a)
	pageContent = tostring(mw.getCurrentFrame().args[1])
	local div = mw.html.create( 'nowiki' )
	div
     :wikitext( pageContent )
	return a:preprocess(tostring( div ))
end

function p.luaSourceCodeText(a)
	pageContent = tostring(mw.getCurrentFrame().args[1])
	local div = mw.html.create( 'syntaxhighlight' )
	div
     :attr( 'lang', 'lua' )
     :wikitext( pageContent )
	return a:preprocess(tostring( div ))
end

function p.originalText(a)
	return mw.getCurrentFrame().args[1]
end

function p.reverseResult(a)
	str = mw.getCurrentFrame().args[1]
	text = string.reverse(str)
	return a:preprocess(text)
end

function p.reverse(a)
	str = mw.getCurrentFrame().args[1]
	text = string.reverse(str)
	return text
end

function p.greek_letter()
	cf = mw.getCurrentFrame()
	-- aString = "<math>\\" .. mw.allToString(cf.args[1]) .. "</math>"
	str = mw.getCurrentFrame().args[1]
	aString = cf:preprocess("<math>\\"..str.."</math>")
	return aString
end

function p.rawstring()
	cf = mw.getCurrentFrame()
	return mw.allToString(cf.args[1])
end

function p.selector()
	cf = mw.getCurrentFrame()
	arg1 = cf.args[1]
	if arg1 == "1" then
		return cf.args[2]
	elseif arg1 == "2" then
		return cf.args[3]
	else
		return "Error"
	end
end

function p.multiArgument()
	cf = mw.getCurrentFrame()
	arg1 = cf.args[1]
	arg2 = cf.args[2]
	arg3 = cf.args[3]
	return arg1 .. " ," .. arg2 .. " ," .. arg3
end

function p.arithmetic(cf)
	arg1 = cf.args[1]
	arg2 = cf.args[2]
	arg3 = cf.args[3]
	num = 0 + arg1 + arg2 + arg3
	return num
end

function p.trig(cf)
	return math.cos(cf.args[1])
end

function p.repetition(cf)
	aList = { }
	aString = ""
	count = cf.args[1]  + 0
	count2 = cf.args[2]  + 0

	while  count > 0 
	do
		table.insert(aList, count)
		count = count -1
	end
	
	for name = cf.args[1], cf.args[2]  do
		table.insert(aList, name)
	end
	resultString = ""
	elementCount = #aList
	while  elementCount > 1 
	do
		resultString = resultString .. " " .. aList[elementCount] .. ","
		elementCount = elementCount - 1
	end
	return resultString
end

function p.pagesInCategory(cf)
	cat = cf.args[1]
	which = cf.args[2]
	params = {"all", "subcats", "files", "pages" }
	return mw.site.stats.pagesInCategory(cat, which)
end


return p