Module:Construction

From Workers & Resources: Soviet Republic Official Wiki
Revision as of 03:32, 11 January 2023 by workers-resources-fandom>Letter N

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

local args = {}
local p = {}
local rownums = {}
local constructionPage

local function preProcessArgs(frame)
	local tmp = {}

	if frame == mw.getCurrentFrame() then
		tmp = frame:getParent().args
	else
		tmp = frame
	end

	-- Storage tables
	local nums = {}

	-- Loop over all the args
	for k,v in pairs(tmp) do
		-- Skip empty args, which are useless
		if v ~= '' then
			local cat,num = tostring(k):match('^(%a+)([1-9]%d*)$')

			if cat == 'header' or cat == 'list' then
				nums[num] = true
			end

			args[k] = v -- Simple copy
		end
	end

	for k, v in pairs(nums) do
		rownums[#rownums+1] = tonumber(k)
	end

	table.sort(rownums)
end

function _construction() 
	constructionPage = mw.html.create('')
	
	local bobby_tables = mw.html.create('table')
	for _, v in ipairs(rownums) do
		if args['list'..v] then 
			bobby_tables:wikitext('<tr><th>'..args['title'..v]..'</th></tr>')
			bobby_tables:wikitext('<tr><td>'..args['list'..v]..'</td></tr>')
		end
	end
	
	constructionPage:wikitext("{|style=\"border-radius:3px; background-color: #eedfce; color:black;\"|<div style=\"background-color: #4a1010; color: #eee; margin: 3px 0px; padding: 3px;\"><big>'''Construction'''</big></div>" ..tostring(bobby_tables).. "|}")
	return tostring(constructionPage)
end

function p.main(frame)
	preProcessArgs(frame)
	return _construction()
end

return p