Module:Workspace intro
Appearance
For use with {{Workspace intro}} via the "build" method.
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