Module:Su
- Аԥсшәа
- العربية
- Արեւմտահայերէն
- Авар
- تۆرکجه
- Basa Bali
- বাংলা
- Беларуская (тарашкевіца)
- भोजपुरी
- Bosanski
- Буряад
- Dansk
- Esperanto
- فارسی
- Føroyskt
- Français
- ગુજરાતી
- 客家語 / Hak-kâ-ngî
- 한국어
- Հայերեն
- Hrvatski
- Ilokano
- Bahasa Indonesia
- Ирон
- ಕನ್ನಡ
- ქართული
- Kurdî
- Latina
- Latviešu
- Lietuvių
- मैथिली
- Македонски
- മലയാളം
- मराठी
- مصرى
- Bahasa Melayu
- Mirandés
- Монгол
- မြန်မာဘာသာ
- 日本語
- Oʻzbekcha / ўзбекча
- ပအိုဝ်ႏဘာႏသာႏ
- پښتو
- Português
- Русский
- Scots
- Simple English
- Slovenščina
- Српски / srpski
- Suomi
- தமிழ்
- Taqbaylit
- တႆး
- ไทย
- Türkçe
- Українська
- Vepsän kel’
- Tiếng Việt
- Winaray
- 吴语
- 粵語
- 中文
Appearance
From Wikipedia, the free encyclopedia
Warning This Lua module is used on approximately 13,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them.
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.
localmSu=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 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.
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 |
The above documentation is transcluded from Module:Su/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages.
Subpages of this module.
Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages.
Subpages of this module.
-- This module implements {{su}}. localp={} functionp.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. localorigArgs=frame:getParent().args localargs={} fork,vinpairs(origArgs)do ifv~=''then args[k]=v end end -- Define the variables to pass to luaMain. localsup=args.p localsub=args.b localoptions={ align=args.a, fontSize=args.w, lineHeight=args.lh, verticalAlign=args.va } returnp._main(sup,sub,options) end functionp.invoke_main(frame) -- entry point for invocation using frame arguments localorigArgs=frame.args localargs={} fork,vinpairs(origArgs)do ifv~=''then args[k]=v end end -- Define the variables to pass to luaMain. localsup=args.p localsub=args.b localoptions={ align=args.a, fontSize=args.w, lineHeight=args.lh, verticalAlign=args.va } returnp._main(sup,sub,options) end functionp._main(sup,sub,options) options=optionsor{} localspan=mw.html.create('span') -- Set the styles. span:css{ ['display']='inline-block', ['margin-bottom']='-0.3em', ['vertical-align']=options.verticalAlignorsuband'-0.4em'or'0.8em', ['line-height']=options.lineHeightor'1.2em' } ifoptions.fontSize=='f'oroptions.fontSize=='fixed'then span:css{ ['font-family']='monospace', ['font-size']='80%' } else span:css('font-size',options.fontSizeor'80%') end ifoptions.align=='r'oroptions.align=='right'then span:css('text-align','right') elseifoptions.align=='c'oroptions.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'<span class="nowrap">'..tostring(span)..'</span>' end returnp