Permanently protected module
From Wikipedia, the free encyclopedia


-- 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

			argsk = 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.invoke_main(frame)

	-- entry point for invocation using frame arguments

	

	local origArgs = frame.args

	local args = {}

	for k, v in pairs(origArgs) do

		if v ~= '' then

			argsk = 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 '<span class="nowrap">' .. tostring(span) .. '</span>'

end



return p
Permanently protected module
From Wikipedia, the free encyclopedia


-- 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

			argsk = 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.invoke_main(frame)

	-- entry point for invocation using frame arguments

	

	local origArgs = frame.args

	local args = {}

	for k, v in pairs(origArgs) do

		if v ~= '' then

			argsk = 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 '<span class="nowrap">' .. tostring(span) .. '</span>'

end



return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook