Jump to content

Module:Workspace intro

From Wikipedia, the free encyclopedia

local p = {}

function p.build(frame)
	local title = ''
	local intro = ''
	local image = ''
	local navigation = ''
	local color = '#6af' -- default value
	local displaymode = 'normal' -- default value
	for key, value in pairs(frame:getParent().args) do  -- iterate through arguments, pick out values
		if key == 'title' then
			title = value
		elseif key == 'intro' then
			intro = value
		elseif key == 'image' then
			image = value
		elseif key == 'navigation' then
			navigation = value
		elseif key == 'color' then
			color = value
		end
	end
	
	local current = mw.title.getCurrentTitle()
	local current_ns = current.namespace
	local current_page = current.text

	-- Rendering table of contents and body
	local body = ''
	
	local header = {}
	table.insert(header, frame:extensionTag{ name = 'templatestyles', args = { src = 'Module:Workspace intro/styles.css' }})
	table.insert(header, '<div class="workspace-intro-header">')
	table.insert(header, '<div class="workspace-intro-front" style="border-top: solid .7em' .. color .. ';">')
	table.insert(header, '<div class="workspace-intro-image nomobile">' .. image .. '</div>')
	table.insert(header, '<div class="workspace-intro-title"><h1>' .. title .. '</h1></div>')
	table.insert(header, '<div class="workspace-intro-blurb">' .. intro .. '</div>')
	if navigation ~= '' then
		if mw.title.makeTitle('Template', navigation).exists == true then
			table.insert(header, frame:expandTemplate{ title = 'Template:' .. navigation, args = {} })
		end
	end
	table.insert(header, "</div>")
	if mw.title.makeTitle(current_ns, current_page .. '/Members').exists == true
	or mw.title.makeTitle(current_ns, current_page .. '/Participants').exists == true then
		table.insert(header, '<div class="workspace-intro-members">' ..
			frame:expandTemplate{ title = 'WPX participants box', args = { } } .. '</div>')
	end
	-- Closing off header
	table.insert(header, "</div>")

	return table.concat(header)
end

return p