Mòideal:Su
Related pages |
---|
(deasbaireachd⧼tpt-languages-separator⧽ ⧼tpt-languages-separator⧽eachdraidh⧼tpt-languages-separator⧽ceanglaichean⧼tpt-languages-separator⧽doc⧼tpt-languages-separator⧽bogsa-gainmhich⧼tpt-languages-separator⧽cùisean deuchainn)
This module is currently protected from editing. See the protection policy and protection log for more details. Please discuss any changes on the talk page; you may submit an edit request to ask an administrator to make an edit if it is uncontroversial or supported by consensus. You may also request that this page be unprotected. |
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This module implements the {{Su}} template. It is used to create two smaller lines of text on one actual line.
Ùsaid bho Uiciteacsa - Usage from Wikitext
This module cannot be used directly from wikitext. It can only be used through a template, usually the {{Su}} template. Please see the template page for documentation.
Ùsaid bho Lua - Usage from Lua
To use this module from other Lua modules, first load the module.
local mSu = require('Mòideal:Su')
You can then generate the Su links by using the _main function.
mSu._main(sup, sub, options)
sup is the contents of the top line, and sub is the contents of the bottom line. options is a table that can contain the following fields:
align
- this can be set to "r" or "right" for right-alignment, and "c" or "center" for center-alignment. Anything else will make the output left-aligned. Must be a string value.fontSize
- the font size of the text, e.g. "90%". If set to "f" or "fixed", the module will output a fixed-width font at 80%. Must be a string value.lineHeight
- the distance from top to bottom (including top character). Default is 1.2em. Must be a string value.verticalAlign
- The base alignment from the bottom. Default depends on presence ofsub
; -0.4em if present, 0.8em if not. Must be a string value.
All arguments are optional.
Eisimpleirean - Examples
Còd - Code | Buil - Result |
---|---|
|
top-line text bottom-line text |
|
top-line text bottom-line text |
|
top-line text bottom-line text |
|
top-line text bottom-line text |
|
top-line text bottom-line text |
|
12 8 |
|
top-line text |
|
bottom-line text |
-- 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