Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

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