Module:Vertical header

-- from wikipedia Module:Vertical_header

local p = {}

function p._vertical_header(args) local text = args.text local maxWidth = args.maxWidth -- local stupidIEAlign = "" 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 * 0.875 width = width .. "em" end local wikiText = "class = \"nowrap"	local sortPadding = args.sortPadding	if sortPadding == "" then		wikiText = wikiText .. " unsortable"	end	local vertAlign = args.vertAlign	wikiText = wikiText .. "\" style=\"line-height:99%;vertical-align:" .. vertAlign .. ";padding:"	if sortPadding == "" then		wikiText = wikiText .. ".4em"	else		wikiText = wikiText .. "21px"	end	wikiText = wikiText .. " .4em .2em;background-position:50% .4em !important;"	local cellStyle = args.cellstyle:gsub("\"", "&quot;") wikiText = wikiText .. "min-width:" .. width .. ";max-width:" .. width .. ";width:" .. width .. ";overflow:hidden;" .. cellStyle .. "\""	wikiText = wikiText .. " | <div style=\"vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:" local normalAlign = "" if vertAlign == "top" then normalAlign = "right" -- stupidIEAlign = "left" elseif vertAlign == "middle" then normalAlign = "center" -- stupidIEAlign = "center" else normalAlign = "left" -- stupidIEAlign = "right" end wikiText = wikiText .. normalAlign .. ";" -- text-align:" .. stupidIEAlign .. " \ ;"	local style = args.style:gsub("\"", "&quot;") wikiText = wikiText .. style .. "\">"	local noBold = args.noBold	if noBold == "" then		wikiText = wikiText .. text	else		wikiText = wikiText .. mw.getCurrentFrame:preprocess("" .. text .. "")	end	wikiText = wikiText .. " "	return wikiText end

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

return p