Module:Su: Difference between revisions

Content deleted Content added
create replacement for Template:Su
 
Per request
 
(11 intermediate revisions by 5 users not shown)
Line 14:
end
end
 
return p.luaMain(args)
-- 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
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.luaMain_main(argssup, 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'] = argsoptions.bverticalAlign or sub and '-0.4em' or '0.8em',
['line-height'] = options.lineHeight or '1.2em',
}
if argsoptions.wfontSize == 'f' or options.fontSize == 'fixed' then
span:css{
['font-family'] = 'monospace,courier',
['font-size'] = '8580%'
}
else
span:css('font-size', argsoptions.w and args.wfontSize or '8580%')
end
if argsoptions.aalign == 'r' or options.align == 'right' then
span:css('text-align', 'right')
elseif argsoptions.aalign == 'c' or options.align == 'center' then
span:css('text-align', 'center')
else
Line 43 ⟶ 77:
end
 
-- Add the wikitext.
span
:wikitexttag(args.p'sup')
:css('font-size', 'inherit')
:css('line-height', 'inherit')
:css('vertical-align', 'baseline')
:wikitext(sup)
:done()
:tag('br', {selfClosing = true}):done()
:wikitexttag(args.b'sub')
:css('font-size', 'inherit')
:css('line-height', 'inherit')
:css('vertical-align', 'baseline')
:wikitext(sub)
return '<span class="nowrap">' .. tostring(span) .. '</span>'
end