Module:Vertical header
Revision as of 09:46, 29 October 2018 by en>Andreyyshore (Added cellstyle argument. Makes it easier to customize the appearance of a cell, like applying a background color to the entire cell instead of just the text inside it. Necessary since the module's internal style tag overrides (actually entirely replac...)
Documentation for this module may be created at Module:Vertical header/doc
local p = {}
function p.cell(frame)
local text = frame.args.text
local sortPadding = frame.args.sortPadding
local vertAlign = frame.args.vertAlign
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 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
if sortPadding == "" then
wikiText = wikiText .. " unsortable"
end
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;"
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:"
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 .. " \ ;"
wikiText = wikiText .. style .. "\">"
if noBold == "" then
wikiText = wikiText .. text
else
wikiText = wikiText .. frame:preprocess("{{nobold|1=" .. text .. "}}")
end
wikiText = wikiText .. "</div>"
return wikiText
end
return p