Jump to content

Modulo:Su

Manipud iti Wikipedia, ti nawaya nga ensiklopedia
Dokumentasion ti modulo

Daytoy a modulo ket isayangkatna ti plantilia ti {{su}}. Daytoy ket inus-usar tapno makapartuat kadagiti dua a basbassit a linia iti teksto iti maysa a pudno a linia.

Panagusar manipud ti wikitext

[urnosen ti taudan]

Daytoy a modulo ket saan a mabalin a dagus a mausar manipud ti wikitext. Daytoy ket mabalin laeng a mausar babaen ti plantilia, kadawyan a ti plantilia ti {{su}}. Pangngaasi a kitaen ti panid ti plantilia para iti dokumentasion.

Panagusar manipud kadagiti modulo

[urnosen ti taudan]

Tapno mausar daytoy manipud kadagiti modulo ti Lua, umuna nga ikarga ti modulo.

local mSu = require('Modulo:Su')

Mabalin a mapataud dagiti silpo ti su babaen ti panagusar ti annong ti _main.

mSu._main(sup, sub, options)

Ti sup ket dagiti linaon iti ngato a linia, ken ti sub ket dagiti linaon iti baba ti linia. Ti options ket ti tabla a mabalin nga aglaon kadagiti sumaganad a pagikabilan:

  • align - Daytoy ket mabalin a maisaad iti "r" wenno "right" para iti pannakailinia iti kanawan, ken "c" wenno "center" para iti pannakailinia iti tengnga. Ti ania man a sabali ket mangiparuar ti nailinia iti kanigid. Nasken daytoy a pateg ti kuerdas.
  • fontSize - ti kadakkel ti kita ti letra ti teksto, kas iti "90%". No maisaad iti "f" wenno "fixed", ti modulo ket mangiparuar ti natalinaay a kaakaba ti kita ti letra iti 85%. Nasken daytoy a pateg ti kuerdas.
  • lineHeight - ti kaadayo manipud iti ngato agingga iti baba (mairaman ti akingato a karakter). Ti kasisgud ket 1.2em. Nasken a pateg ti kuerdas.
  • verticalAlign - ti batayan a pannakailinia manipud iti baba. Ti kasisigud ket agdepdepende iti kaaddda ti sub; -0.4em no adda, 0.8em no awan. Nasken daytoy a pateg ti kuerdas.

Amin dagiti argumento ket pagpilian.

Kas pagarigan

[urnosen ti taudan]
Kodigo Resulta
mSu._main('top-line text', 'bottom-line text') top-line text
bottom-line text
mSu._main('top-line text', 'bottom-line text', {fontSize = '100%'}) top-line text
bottom-line text
mSu._main('top-line text', 'bottom-line text', {fontSize = 'f'}) top-line text
bottom-line text
mSu._main('top-line text', 'bottom-line text', {align = 'r'}) top-line text
bottom-line text
mSu._main('top-line text', 'bottom-line text', {align = 'c'}) top-line text
bottom-line text
mSu._main('12', '8', {align = 'c', lineHeight = '0.8em'}) 12
8
mSu._main('top-line text') top-line text
mSu._main(nil, 'bottom-line text')
bottom-line text

-- Daytoy a modulo ket isayangkatna ti {{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