Module:Sandbox/Andreyyshore/Vertical header: Difference between revisions

Content deleted Content added
No edit summary
mNo edit summary
 
(16 intermediate revisions by the same user not shown)
Line 1:
local p = {}
 
function p.stack(str, vertAlign, noBold)
local t = {}
local breakPattern = "<[bB][rR] */? *>"
Line 8:
return ""
end
local text = mw.ustring.toNFC(str):gsub("%[%[([^%[%]%|]+)%|([^%[%]%|]+)%]%]", function(a, b)
splitLines((str:gsub("(.-)(" .. breakPattern .. ")", splitLines)))
return "[[" .. a .. "|" .. b:gsub(breakPattern, "]]<br>[[" .. a .. "|") .. "]]"
end)
splitLines((strtext:gsub("(.-)(" .. breakPattern .. ")", splitLines)))
for k, v in pairs(t) do
t[k] = (v
mw.ustring.gsub(
:gsub("([^'%[%]])", "%1<br>")
: mw.ustring.gsub(v, "'([^'%[%]])", "'%1<br>%1"),
:gsub( "'([^'%[%]])", "%1'<br>%1")
)
:gsub("(''+)<br>", "%1")
:gsub("(%[%[+)<br>", "%1")
Line 30 ⟶ 35:
)
end
if #t == 1 then return t[1] end
return t[1]
end
local dom1 = mw.html.create("tr")
if noBold ~= "" then dom1:css("font-weight", "normal") end
local dom2
for _, v in pairs(t) do
Line 42 ⟶ 46:
["border"] = "none",
["padding"] = 0,
["vertical-align"] = vertAlign,
["width"] = "1em",
["max-width"] = "1em"
})
:wikitext(v)
Line 51 ⟶ 57:
:wikitext(tostring(dom1))
:css({
["margin"] = 0"auto",
["border-collapse"] = "collapse",
["vertical-align"] = "inherit"
Line 65 ⟶ 71:
local maxWidth = frame.args.maxWidth
local noBold = frame.args.noBold
local style = frame.args.style:gsub("\"", "&quot;")
local cellStyle = frame.args.cellstyle:gsub("\"", "&quot;")
local wikiText = "class = \"nowrap"
local normalAlign = ""
Line 85 ⟶ 92:
wikiText = wikiText .. " unsortable"
end
wikiText = wikiText .. "\" style=\"line-height:99%;vertical-align:" ..
if stack == "" then
vertAlign .. ";padding:"
wikiText = wikiText .. "99"
else
wikiText = wikiText .. "120"
end
wikiText = wikiText .. "%;vertical-align:" .. vertAlign .. ";padding:"
if sortPadding == "" then
wikiText = wikiText .. ".4em"
Line 92 ⟶ 104:
wikiText = wikiText .. "21px"
end
if (stack ~= "" and text:find(breakPattern) ~= nil) then
wikiText = wikiText .. " .4em .2em;background-position:50% .4em !important;"
wikiText = wikiText .. "min-width:" .. width .. 2em";max-width:" .. width ..
else
";width:" .. width .. ";overflow:hidden\""
wikiText = wikiText .. " | <div style=\".4em"
end
wikiText = wikiText .. " .4em .2em;background-position:50% .4em !important;"
if stack == "" then
wikiText = wikiText .. frame"min-width:preprocess("{{writing .. width .. ";max-mode|v1}}{{Transform-rotate|180}}width:") .. width ..
";width:" .. width .. ";overflow:hidden;" .. cellStyle .. "\""
end
wikiText = wikiText .. "-ms-transform: none| \<div ;padding-left:1px;text-align:style=\""
if vertAlignstack == "top" then
wikiText = wikiText .. frame:preprocess("{{writing-mode|v1}}{{Transform-rotate|180}}") ..
normalAlign = "right"
"-ms-transform: stupidIEAlignnone =\ ";padding-left:1px;"
elseif if vertAlign == "middletop" then
normalAlign = "centerright"
-- stupidIEAlign = "centerleft"
elseif vertAlign == "middle" then
else
normalAlign = "leftcenter"
-- stupidIEAlign = "rightcenter"
else
normalAlign = "rightleft"
-- stupidIEAlign = "right"
end
else normalAlign = "center"
end
wikiText = wikiText .. "text-align:" .. normalAlign .. ";" -- text-align:" .. stupidIEAlign .. " \ ;"
wikiText = wikiText .. style .. "\">"
local textToAdd = text
if stack ~= "" then
textToAdd = p.stack(text, vertAlign, noBold)
end
if noBold == "" then