Jump to content

Module:Vertical header: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
switch to Module:Arguments
Tag: Reverted
undo
 
Line 3: Line 3:


local templatestylesPage = 'Module:Vertical header/styles.css'
local templatestylesPage = 'Module:Vertical header/styles.css'

local getArgs = require( 'Module:Arguments' ).getArgs


local function isEmpty(s)
local function isEmpty(s)
Line 53: Line 51:


function p.cell(frame)
function p.cell(frame)
local args = getArgs( frame )
local args = frame.args
return p._vertical_header(args)
return p._vertical_header(args)
end
end

Latest revision as of 19:20, 2 July 2024

require( 'strict' )
local p = {}

local templatestylesPage = 'Module:Vertical header/styles.css'

local function isEmpty(s)
	return s == nil or s == ''
end

function p._vertical_header(args)
	local text = args.text
	local maxWidth = args.maxWidth
	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
		width = width .. 'em'
	end
	
	local class = args.class or ''
	local vertAlign = not isEmpty( args.vertAlign ) and 'is-valign-' .. args.vertAlign or ''
	local noBold = isEmpty( args.noBold ) and '' or 'is-normal'
	local wikiText = string.format( 'class="nowrap ts-vertical-header %s %s %s"', vertAlign, noBold, class )
	
	local cellStyle = ( args.cellstyle or '' ):gsub("\"", "&quot;")
	if width and width ~= '1em' then
		wikiText = wikiText .. string.format( ' style="max-width:%s; width:%s; %s"', width, width, cellStyle )
	elseif cellStyle then
		wikiText = wikiText .. string.format( ' style="%s"', cellStyle )
	end
	
	wikiText = wikiText .. ' | <div style="'
	local style = args.style:gsub("\"", "&quot;")
	wikiText = wikiText .. style .. "\">"
	
	-- Add TemplateStyles
	wikiText = wikiText .. mw.getCurrentFrame():extensionTag{
		name = 'templatestyles',
		args = { src = templatestylesPage }
	}
	
	wikiText = wikiText .. text .. '</div>'
	return wikiText
end

function p.cell(frame)
	local args = frame.args
	return p._vertical_header(args)
end

return p