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:Vertical header/sandbox

From Wikipedia, the free encyclopedia
require( 'strict' )
local p = {}

local templatestylesPage = 'Module:Vertical header/sandbox/styles.css'

local function isEmpty(s)
	return s == nil or s == ''
end

function p._vertical_header(args)
	local text = args.text
	local maxWidth = args.maxWidth
	local rows = 1
	local width = 0
	if maxWidth ~= '' then
		width = maxWidth
	else
		for eachMatch in text:gmatch('<[bB][rR] */? *>') do
			rows = rows + 1
		end
		
		width = rows
		width = width .. 'em'
	end
	
	local class = args.class or ''
	local vertAlign = not isEmpty( args.vertAlign ) and 'is-valign-' .. args.vertAlign or ''
	local noBold = isEmpty( args.noBold ) and '' or 'is-normal'
	local wikiText = string.format( 'class="nowrap ts-vertical-header %s %s %s"', vertAlign, noBold, class )
	
	local cellStyle = ( args.cellstyle or '' ):gsub("\"", "&quot;")
	if width and width ~= '1em' then
		wikiText = wikiText .. string.format( ' style="max-width:%s; width:%s; %s"', width, width, cellStyle )
	elseif cellStyle then
		wikiText = wikiText .. string.format( ' style="%s"', cellStyle )
	end
	
	wikiText = wikiText .. ' | <div style="'
	local style = args.style:gsub("\"", "&quot;")
	wikiText = wikiText .. style .. "\">"
	
	-- Add TemplateStyles
	wikiText = wikiText .. mw.getCurrentFrame():extensionTag{
		name = 'templatestyles',
		args = { src = templatestylesPage }
	}
	
	wikiText = wikiText .. text .. '</div>'
	return wikiText
end

function p.cell(frame)
	local args = frame.args
	return p._vertical_header(args)
end

return p