Permanently protected module
From Wikipedia, the free encyclopedia


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 .. ' | <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