Tài liệu mô đun[tạo]
local p = {}
local getArgs = require('Module:Arguments').getArgs

local validmonth = {
	["january"] = "OK",
	["february"] = "OK",
	["march"] = "OK",
	["april"] = "OK",
	["may"] = "OK",
	["june"] = "OK",
	["july"] = "OK",
	["august"] = "OK",
	["september"] = "OK",
	["october"] = "OK",
	["november"] = "OK",
	["december"] = "OK"
}

	
function isValidMonth(s)
	local mymonth = mw.ustring.gsub(s, "%s+%d%d%d%d%s*$", "")
	mymonth = mw.ustring.gsub(s, "^%s+", "")
	if (validmonth[string.lower(mymonth)] == "OK") then
		return true
	end
	return false
end

function p.main(frame)
	local rawcats = {}
	local nvalid = 0
	local args = getArgs(frame)
	
	local electionyear =args['electionyear'];
	
	if (electionyear == nil) then
		electionyear = ""
	end
	
	if ((electionyear == nil) or (mw.ustring.match(electionyear, "^%s*$") ~= nil)) then
		return "[[Category:CanElecResTopTest with nil value]]"
	elseif (mw.ustring.match(electionyear, "^%s*%d%d%d%d%s*$") ~= nil) then
		return "[[Category:CanElecResTopTest with bare year]]"
	elseif (mw.ustring.match(electionyear, "^.*%s+%d%d%d%d%s*$") ~= nil) then
		if (isValidMonth(electionyear)) then
			return "[[Category:CanElecResTopTest với tháng năm]]"
		else
			return "[[Category:CanElecResTopTest với một cái gì đó trước năm]]"
		end
	else
		return "[[Category:CanElecResTopTest với giá trị không được công nhận]]"
	end
end

return p