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

Content deleted Content added
No edit summary
No edit summary
Line 1:
local p = {}
 
function p.lines(str)
local t = {}
local breakPattern = "<[bB][rR] */? *>"
local function splitLines(line)
table.insert(t, line)
return ""
end
splitLines((str:gsub("(.-)(" .. breakPattern .. ")", splitLines)))
for k, v in pairs(t) do
t[k] = (v
:gsub("([^'%[%]])", "%1<br>")
:gsub("'([^'])", "'<br>%1")
:gsub("(''+)<br>", "%1")
:gsub("(%[%[+)<br>", "%1")
:gsub("<br>(%]+)", "%1<br>")
:gsub("%[%[([^%[%]]+)%]%]", function(n)
local inBrackets = n
local stripped = ""
if inBrackets:find("%|") == nil then
inBrackets = inBrackets:gsub("<br>", "") .. "|" .. inBrackets
else
stripped = inBrackets:match("^[^%|]+%|"):gsub("<br>", "")
inBrackets = stripped .. inBrackets:gsub("^[^%|]+%|<br>", "")
end
return "[[" .. inBrackets .. "]]"
end)
:gsub("<br>$", "")
)
end
local dom1 = mw.html.create("tr")
local dom2
if #t == 1 then
return t[1]
end
for _, v in pairs(t) do
dom1:wikitext(tostring(mw.html.create("td"):css({border = "none", padding = 0}):wikitext(v)))
end
dom2 = mw.html.create("table"):wikitext(tostring(dom1)):css("margin", 0):css("border-collapse", "collapse"):attr({cellspacing = 0, cellpadding = 0})
return tostring(dom2)
end
 
function p.cell(frame)
Line 11 ⟶ 52:
local normalAlign = ""
-- local stupidIEAlign = ""
local breakPattern = "<[bB][rR] */? *>"
local rows = 1
local width = 0
Line 16 ⟶ 58:
width = maxWidth
else
for eachMatch in text:gmatch("<[bB][rR] */? *>"breakPattern) do
rows = rows + 1
end