Modulo:Su
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 tisub
; -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