Module:Su
Appearance
मॉड्यूल बिबरनलेख[देखीं] [संपादन करीं] [इतिहास देखीं] [रिफ्रेश करीं]
This module implements the {{su}} template. It is used to create two smaller lines of text on one actual line.
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.
Usage from Lua modules
[संपादन करीं]To use this module from other Lua modules, first load the module.
local mSu = require('Module: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 85%. Must be a string value.lineHeight
- the distance from top to bottom (including top character). Default is 1.2em. Must be a string value.
All arguments are optional.
Examples
[संपादन करीं]Code | Result |
---|---|
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 |
परिचय खातिर ऊपर दिहल गइल बिबरनलेख के Module:Su/doc से ट्रांसक्लूड क के इहाँ देखावल जा रहल बाटे। (संपादन करीं | इतिहास देखीं) संपादक लोग एह मॉड्यूल के अभ्यासपन्ना (सैंडबाक्स) (बनाईं | मिरर करीं) आ टेस्टकेस (बनाईं) पन्ना पर अभ्यास भा प्रयोग (टेस्टिंग) क सकत बाटे। एह मॉड्यूल के उपपन्ना (सबपेज) देखीं। |
-- 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
}
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'] = 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,courier',
['font-size'] = '85%'
}
else
span:css('font-size', options.fontSize and options.fontSize or '85%')
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
:wikitext(sup)
:tag('br', {selfClosing = true}):done()
:wikitext(sub)
return tostring(span)
end
return p