Module:Vertical header

require( 'strict' ) local p = {}

local templatestylesPage = 'Module:Vertical header/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 .. ' | " -- Add TemplateStyles wikiText = wikiText .. mw.getCurrentFrame:extensionTag{ name = 'templatestyles', args = { src = templatestylesPage } }	wikiText = wikiText .. text .. ' '	return wikiText end

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

return p