<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FAndreyyshore%2FVertical_header</id>
	<title>Module:Sandbox/Andreyyshore/Vertical header - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FAndreyyshore%2FVertical_header"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Andreyyshore/Vertical_header&amp;action=history"/>
	<updated>2026-04-17T18:46:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/Andreyyshore/Vertical_header&amp;diff=145114&amp;oldid=prev</id>
		<title>imported&gt;Andreyyshore at 00:46, 31 October 2018</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Andreyyshore/Vertical_header&amp;diff=145114&amp;oldid=prev"/>
		<updated>2018-10-31T00:46:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.stack(str, vertAlign, noBold)&lt;br /&gt;
	local t = {}&lt;br /&gt;
	local breakPattern = &amp;quot;&amp;lt;[bB][rR] */? *&amp;gt;&amp;quot;&lt;br /&gt;
	local function splitLines(line)&lt;br /&gt;
		table.insert(t, line)&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local text = mw.ustring.toNFC(str):gsub(&amp;quot;%[%[([^%[%]%|]+)%|([^%[%]%|]+)%]%]&amp;quot;, function(a, b)&lt;br /&gt;
		return &amp;quot;[[&amp;quot; .. a .. &amp;quot;|&amp;quot; .. b:gsub(breakPattern, &amp;quot;]]&amp;lt;br&amp;gt;[[&amp;quot; .. a .. &amp;quot;|&amp;quot;) .. &amp;quot;]]&amp;quot;&lt;br /&gt;
	end)&lt;br /&gt;
	splitLines(text:gsub(&amp;quot;(.-)(&amp;quot; .. breakPattern .. &amp;quot;)&amp;quot;, splitLines))&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		t[k] = (&lt;br /&gt;
			mw.ustring.gsub(&lt;br /&gt;
				mw.ustring.gsub(v, &amp;quot;([^&amp;#039;%[%]])&amp;quot;, &amp;quot;%1&amp;lt;br&amp;gt;&amp;quot;),&lt;br /&gt;
				&amp;quot;&amp;#039;([^&amp;#039;])&amp;quot;, &amp;quot;&amp;#039;&amp;lt;br&amp;gt;%1&amp;quot;&lt;br /&gt;
			)&lt;br /&gt;
			:gsub(&amp;quot;(&amp;#039;&amp;#039;+)&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
			:gsub(&amp;quot;(%[%[+)&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
			:gsub(&amp;quot;&amp;lt;br&amp;gt;(%]+)&amp;quot;, &amp;quot;%1&amp;lt;br&amp;gt;&amp;quot;)&lt;br /&gt;
			:gsub(&amp;quot;%[%[([^%[%]]+)%]%]&amp;quot;, function(n)&lt;br /&gt;
				local inBrackets = n&lt;br /&gt;
				local stripped = &amp;quot;&amp;quot;&lt;br /&gt;
				if inBrackets:find(&amp;quot;%|&amp;quot;) == nil then&lt;br /&gt;
					inBrackets = inBrackets:gsub(&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;) .. &amp;quot;|&amp;quot; .. inBrackets&lt;br /&gt;
				else&lt;br /&gt;
					stripped = inBrackets:match(&amp;quot;^[^%|]+%|&amp;quot;):gsub(&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
					inBrackets = stripped .. inBrackets:gsub(&amp;quot;^[^%|]+%|&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
				return &amp;quot;[[&amp;quot; .. inBrackets .. &amp;quot;]]&amp;quot;&lt;br /&gt;
			end)&lt;br /&gt;
			:gsub(&amp;quot;&amp;lt;br&amp;gt;$&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	if #t == 1 then return t[1] end&lt;br /&gt;
	local dom1 = mw.html.create(&amp;quot;tr&amp;quot;)&lt;br /&gt;
	if noBold ~= &amp;quot;&amp;quot; then dom1:css(&amp;quot;font-weight&amp;quot;, &amp;quot;normal&amp;quot;) end&lt;br /&gt;
	local dom2&lt;br /&gt;
	for _, v in pairs(t) do&lt;br /&gt;
		dom1:wikitext(&lt;br /&gt;
			tostring(&lt;br /&gt;
				mw.html.create(&amp;quot;td&amp;quot;)&lt;br /&gt;
					:css({&lt;br /&gt;
						[&amp;quot;border&amp;quot;] = &amp;quot;none&amp;quot;,&lt;br /&gt;
						[&amp;quot;padding&amp;quot;] = 0,&lt;br /&gt;
						[&amp;quot;vertical-align&amp;quot;] = vertAlign,&lt;br /&gt;
						[&amp;quot;width&amp;quot;] = &amp;quot;1em&amp;quot;,&lt;br /&gt;
						[&amp;quot;max-width&amp;quot;] = &amp;quot;1em&amp;quot;&lt;br /&gt;
					})&lt;br /&gt;
					:wikitext(v)&lt;br /&gt;
			)&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	dom2 = mw.html.create(&amp;quot;table&amp;quot;)&lt;br /&gt;
		:wikitext(tostring(dom1))&lt;br /&gt;
		:css({&lt;br /&gt;
			[&amp;quot;margin&amp;quot;] = &amp;quot;auto&amp;quot;,&lt;br /&gt;
			[&amp;quot;border-collapse&amp;quot;] = &amp;quot;collapse&amp;quot;,&lt;br /&gt;
			[&amp;quot;vertical-align&amp;quot;] = &amp;quot;inherit&amp;quot;&lt;br /&gt;
		})&lt;br /&gt;
		:attr({cellspacing = 0, cellpadding = 0})&lt;br /&gt;
	return tostring(dom2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.cell(frame)&lt;br /&gt;
	local text = frame.args.text&lt;br /&gt;
	local sortPadding = frame.args.sortPadding&lt;br /&gt;
	local vertAlign = frame.args.vertAlign&lt;br /&gt;
	local maxWidth = frame.args.maxWidth&lt;br /&gt;
	local noBold = frame.args.noBold&lt;br /&gt;
	local style = frame.args.style:gsub(&amp;quot;\&amp;quot;&amp;quot;, &amp;quot;&amp;amp;quot;&amp;quot;)&lt;br /&gt;
	local cellStyle = frame.args.cellstyle:gsub(&amp;quot;\&amp;quot;&amp;quot;, &amp;quot;&amp;amp;quot;&amp;quot;)&lt;br /&gt;
	local wikiText = &amp;quot;class = \&amp;quot;nowrap&amp;quot;&lt;br /&gt;
	local normalAlign = &amp;quot;&amp;quot;&lt;br /&gt;
	-- local stupidIEAlign = &amp;quot;&amp;quot;&lt;br /&gt;
	local stack = frame.args.stack&lt;br /&gt;
	local breakPattern = &amp;quot;&amp;lt;[bB][rR] */? *&amp;gt;&amp;quot;&lt;br /&gt;
	local rows = 1&lt;br /&gt;
	local width = 0&lt;br /&gt;
	if maxWidth ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		width = maxWidth&lt;br /&gt;
	else&lt;br /&gt;
		for eachMatch in text:gmatch(breakPattern) do&lt;br /&gt;
			rows = rows + 1&lt;br /&gt;
		end&lt;br /&gt;
		width = rows * 0.875&lt;br /&gt;
		width = width .. &amp;quot;em&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if sortPadding == &amp;quot;&amp;quot; then&lt;br /&gt;
		wikiText = wikiText .. &amp;quot; unsortable&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	wikiText = wikiText .. &amp;quot;\&amp;quot; style=\&amp;quot;line-height:&amp;quot;&lt;br /&gt;
	if stack == &amp;quot;&amp;quot; then&lt;br /&gt;
		wikiText = wikiText .. &amp;quot;99&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		wikiText = wikiText .. &amp;quot;120&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	wikiText = wikiText .. &amp;quot;%;vertical-align:&amp;quot; .. vertAlign .. &amp;quot;;padding:&amp;quot;&lt;br /&gt;
	if sortPadding == &amp;quot;&amp;quot; then&lt;br /&gt;
		wikiText = wikiText .. &amp;quot;.4em&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		wikiText = wikiText .. &amp;quot;21px&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if (stack ~= &amp;quot;&amp;quot; and text:find(breakPattern) ~= nil) then&lt;br /&gt;
		wikiText = wikiText .. &amp;quot; .2em&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		wikiText = wikiText .. &amp;quot; .4em&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	wikiText = wikiText .. &amp;quot; .2em;background-position:50% .4em !important;&amp;quot;&lt;br /&gt;
	if stack == &amp;quot;&amp;quot; then&lt;br /&gt;
		wikiText = wikiText .. &amp;quot;min-width:&amp;quot; .. width .. &amp;quot;;max-width:&amp;quot; .. width ..&lt;br /&gt;
			&amp;quot;;width:&amp;quot; .. width .. &amp;quot;;overflow:hidden;&amp;quot; .. cellStyle .. &amp;quot;\&amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	wikiText = wikiText .. &amp;quot; | &amp;lt;div style=\&amp;quot;&amp;quot;&lt;br /&gt;
	if stack == &amp;quot;&amp;quot; then&lt;br /&gt;
		wikiText = wikiText .. frame:preprocess(&amp;quot;{{writing-mode|v1}}{{Transform-rotate|180}}&amp;quot;) ..&lt;br /&gt;
			&amp;quot;-ms-transform: none \ ;padding-left:1px;&amp;quot;&lt;br /&gt;
		if vertAlign == &amp;quot;top&amp;quot; then&lt;br /&gt;
			normalAlign = &amp;quot;right&amp;quot;&lt;br /&gt;
			-- stupidIEAlign = &amp;quot;left&amp;quot;&lt;br /&gt;
		elseif vertAlign == &amp;quot;middle&amp;quot; then&lt;br /&gt;
			normalAlign = &amp;quot;center&amp;quot;&lt;br /&gt;
			-- stupidIEAlign = &amp;quot;center&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			normalAlign = &amp;quot;left&amp;quot;&lt;br /&gt;
			-- stupidIEAlign = &amp;quot;right&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	else normalAlign = &amp;quot;center&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	wikiText = wikiText .. &amp;quot;text-align:&amp;quot; .. normalAlign .. &amp;quot;;&amp;quot; -- text-align:&amp;quot; .. stupidIEAlign .. &amp;quot; \ ;&amp;quot;&lt;br /&gt;
	wikiText = wikiText .. style .. &amp;quot;\&amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
	local textToAdd = text&lt;br /&gt;
	if stack ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		textToAdd = p.stack(text, vertAlign, noBold)&lt;br /&gt;
	end&lt;br /&gt;
	if noBold == &amp;quot;&amp;quot; then&lt;br /&gt;
		wikiText = wikiText .. textToAdd&lt;br /&gt;
	else&lt;br /&gt;
		wikiText = wikiText .. frame:preprocess(&amp;quot;{{nobold|1=&amp;quot; .. textToAdd .. &amp;quot;}}&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	wikiText = wikiText .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
	return wikiText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Andreyyshore</name></author>
	</entry>
</feed>