Module:Vertical header: Difference between revisions

Safer nicotine wiki Tobacco Harm Reduction
Jump to navigation Jump to search
m (1 revision imported)
imported>Izno
(fix)
 
Line 1: Line 1:
local p = {}
local p = {}


function p.cell(frame)
function p._vertical_header(args)
local text = frame.args.text
local sortPadding = frame.args.sortPadding
local text = args.text
local vertAlign = frame.args.vertAlign
local maxWidth = args.maxWidth
local maxWidth = frame.args.maxWidth
local noBold = frame.args.noBold
local style = frame.args.style:gsub("\"", """)
local cellStyle = frame.args.cellstyle:gsub("\"", """)
local wikiText = "class = \"nowrap"
local normalAlign = ""
-- local stupidIEAlign = ""
-- local stupidIEAlign = ""
local rows = 1
local rows = 1
Line 23: Line 17:
width = width .. "em"
width = width .. "em"
end
end
local wikiText = "class = \"nowrap"
local sortPadding = args.sortPadding
if sortPadding == "" then
if sortPadding == "" then
wikiText = wikiText .. " unsortable"
wikiText = wikiText .. " unsortable"
end
end
local vertAlign = args.vertAlign
wikiText = wikiText .. "\" style=\"line-height:99%;vertical-align:" .. vertAlign .. ";padding:"
wikiText = wikiText .. "\" style=\"line-height:99%;vertical-align:" .. vertAlign .. ";padding:"
if sortPadding == "" then
if sortPadding == "" then
Line 33: Line 32:
end
end
wikiText = wikiText .. " .4em .2em;background-position:50% .4em !important;"
wikiText = wikiText .. " .4em .2em;background-position:50% .4em !important;"
local cellStyle = args.cellstyle:gsub("\"", """)
wikiText = wikiText .. "min-width:" .. width .. ";max-width:" .. width .. ";width:" .. width .. ";overflow:hidden;" .. cellStyle .. "\""
wikiText = wikiText .. "min-width:" .. width .. ";max-width:" .. width .. ";width:" .. width .. ";overflow:hidden;" .. cellStyle .. "\""
wikiText = wikiText .. " | <div style=\"" .. frame:preprocess("{{writing-mode|v1}}{{Transform-rotate|180}}") .. "-ms-transform: none \ ;padding-left:1px;text-align:"
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
if vertAlign == "top" then
normalAlign = "right"
normalAlign = "right"
Line 46: Line 49:
end
end
wikiText = wikiText .. normalAlign .. ";" -- text-align:" .. stupidIEAlign .. " \ ;"
wikiText = wikiText .. normalAlign .. ";" -- text-align:" .. stupidIEAlign .. " \ ;"
local style = args.style:gsub("\"", "&quot;")
wikiText = wikiText .. style .. "\">"
wikiText = wikiText .. style .. "\">"
local noBold = args.noBold
if noBold == "" then
if noBold == "" then
wikiText = wikiText .. text
wikiText = wikiText .. text
else
else
wikiText = wikiText .. frame:preprocess("{{nobold|1=" .. text .. "}}")
wikiText = wikiText .. mw.getCurrentFrame():preprocess("{{nobold|1=" .. text .. "}}")
end
end
wikiText = wikiText .. "</div>"
wikiText = wikiText .. "</div>"
return wikiText
return wikiText
end
function p.cell(frame)
local args = frame.args
return p._vertical_header(args)
end
end


return p
return p

Latest revision as of 07:15, 3 November 2022

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;"
	
	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