×
Create a new article
Write your page title here:
We currently have 10,683 articles on Polandball Wiki. Type your article name above or create one of the articles listed here!



    Polandball Wiki

    Documentation for this module may be created at Module:Su/doc

    -- This module implements {{su}}.
    
    local p = {}
    
    function p.main(frame)
    	-- Use arguments from the parent frame only, and remove any blank arguments.
    	-- We don't need to trim whitespace from any arguments, as this module only
    	-- uses named arguments, and whitespace is trimmed from them automatically. 
    	local origArgs = frame:getParent().args
    	local args = {}
    	for k, v in pairs(origArgs) do
    		if v ~= '' then
    			args[k] = v
    		end
    	end
    
    	-- Define the variables to pass to luaMain.
    	local sup = args.p
    	local sub = args.b
    	local options = {
    		align = args.a,
    		fontSize = args.w,
    		lineHeight = args.lh,
    		verticalAlign = args.va
    	}
    	return p._main(sup, sub, options)
    end
    
    function p._main(sup, sub, options)
    	options = options or {}
    	local span = mw.html.create('span')
    
    	-- Set the styles.
    	span:css{
    		['display']        = 'inline-block',
    		['margin-bottom']  = '-0.3em',
    		['vertical-align'] = options.verticalAlign or sub and '-0.4em' or '0.8em',
    		['line-height']    = options.lineHeight or '1.2em'
    	}
    	if options.fontSize == 'f' or options.fontSize == 'fixed' then
    		span:css{
    			['font-family'] = 'monospace',
    			['font-size']   = '80%'
    		}
    	else
    		span:css('font-size', options.fontSize or '80%')
    	end
    	if options.align == 'r' or options.align == 'right' then
    		span:css('text-align', 'right')
    	elseif options.align == 'c' or options.align == 'center' then
    		span:css('text-align', 'center')
    	else
    		span:css('text-align', 'left')
    	end
    
    	-- Add the wikitext.
    	span
    		:tag('sup')
    			:css('font-size', 'inherit')
    			:css('line-height', 'inherit')
    			:css('vertical-align', 'baseline')
    			:wikitext(sup)
    			:done()
    		:tag('br', {selfClosing = true}):done()
    		:tag('sub')
    			:css('font-size', 'inherit')
    			:css('line-height', 'inherit')
    			:css('vertical-align', 'baseline')
    			:wikitext(sub)
    	
    	return tostring(span)
    end
    
    return p
    
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.