Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Documentation for this module may be created at Module:Vertical header/doc

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;text-align:center;\"" 
	
	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("{{nobold|1=" .. text .. "}}")
	end
	wikiText = wikiText .. "</div>"
	return wikiText
end

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

return p