모듈:Su
이 모듈은 {{su}} 틀의 구현체입니다.
위키텍스트에서의 사용법[편집]
이 모듈을 위키텍스트에서 바로 사용하지 마세요. {{su}} 등의 다른 틀을 이용하시기 바랍니다. 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.
루아 모듈에서의 사용법[편집]
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.
All arguments are optional.
예제[편집]
코드 | 결과 |
---|---|
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('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 or args['정렬'],
fontSize = args.w or args['폭'] or args['크기']
}
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'] = '1.2em',
}
if options.fontSize == 'f' or options.fontSize == 'fixed' or options.fontSize == '고정' 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' or options.align == '오른쪽' then
span:css('text-align', 'right')
elseif options.align == 'c' or options.align == 'center' or options.align == '가운데' 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