모듈: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


}}


이 모듈 문서의 출처는 위키백과:모듈:Su입니다.
위 설명은 모듈:Su/설명문서의 내용을 가져와 보여주고 있습니다.
연습장이나 사용자 문서에서 틀의 사용이나 수정을 연습할 수 있습니다.
분류는 /설명문서에 넣어주세요. 이 틀의 하위문서.

-- 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 or args['위']
	local sub = args.b or args['아래']
	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