Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Usage from wikitext  





2 Usage from Lua modules  



2.1  Examples  
















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
ி
Taqbaylit
 

Türkçe
Українська
Vepsän kel
Tiếng Vit
Winaray



 

Edit links
 









Module
Talk
 

















Read
View source
View history
 








Tools
   


Actions  



Read
View source
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 





Permanently protected module

From Wikipedia, the free encyclopedia
 


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:

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

-- 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.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._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 '<span class="nowrap">' .. tostring(span) .. '</span>'
end

return p

Retrieved from "https://en.wikipedia.org/w/index.php?title=Module:Su&oldid=1218988451"

Hidden category: 
Wikipedia template-protected modules
 



This page was last edited on 15 April 2024, at 02:27 (UTC).

Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Mobile view



Wikimedia Foundation
Powered by MediaWiki