(새 문서: --{{막대}} 틀을 개선하는 {{새막대}} 틀을 만들기 위한 모듈입니다 --사용가능한 함수는 bar입니다. local function drawBar ( bgcolor, length, str, type ) --막대를 그리는 함수 (막대의 색, 길이, 올림/내림/반올림) local t = require("모듈:Coutput") local color = 'white' local align= 'center' if length > 5000 then return '' end --길이가 5000보다 큰 경우에는 아무것도 그리지 않습니다. if length <= 0 then ret...)
 
편집 요약 없음
 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
1번째 줄: 1번째 줄:
--{{막대}} 틀을 개선하는 {{새막대}} 틀을 만들기 위한 모듈입니다
--{{막대}} 틀을 개선하는 {{새막대}} 틀을 만들기 위한 모듈입니다
--사용가능한 함수는 bar입니다.
--사용가능한 함수는 bar입니다.
local function drawBar ( bgcolor, length, str, type ) --막대를 그리는 함수 (막대의 색, 길이, 올림/내림/반올림)
local function drawBar (color, length, round) --막대를 그리는 함수 (막대의 색, 길이, 올림/내림/반올림)
local t = require("모듈:Coutput")
local t = require("모듈:Coutput")
local color = 'white'
local align= 'center'
if length > 5000 then return '' end --길이가 5000보다 큰 경우에는 아무것도 그리지 않습니다.
if length > 5000 then return '' end --길이가 5000보다 큰 경우에는 아무것도 그리지 않습니다.
if length <= 0 then return '' end --길이가 0보다 작은 경우에도 아무것도 그리지 않습니다.
if length <= 0 then return '' end --길이가 0보다 작은 경우에도 아무것도 그리지 않습니다.
if type ~= 'bar' then bgcolor='transparent'; color='black'; align='right' end
 
local rest_length = --그리고 남은 길이, 즉, 그려야 할 나머지 길이,
t:print ( '<span style="color: ' .. color .. '; background-color: ' .. bgcolor .. '; width: ' .. length .. 'px; float: left; height: 2.0em; margin:0; text-align: ' .. align .. '; font-size: 0.7em">' .. str .. '</span>' )
round == 'up' and  math.ceil(length) or -- 올림의 경우
round == 'down' and math.floor(length) or --버림의 경우
math.floor(length+.5) --  기본적으로는 반올림
while rest_length >= 100 do t:print('[[파일:'):print(color):print('100.png|링크=|]]')rest_length = rest_length - 100 end
while rest_length >= 50 do t:print('[[파일:'):print(color):print('50.png|링크=|]]') rest_length = rest_length - 50 end
while rest_length >= 30 do t:print('[[파일:'):print(color):print('30.png|링크=|]]') rest_length = rest_length - 30 end
while rest_length >= 10 do t:print('[[파일:'):print(color):print('10.png|링크=|]]') rest_length = rest_length - 10 end
while rest_length >= 5 do t:print('[[파일:'):print(color):print('05.png|링크=|]]') rest_length = rest_length - 5 end
while rest_length >= 3 do t:print('[[파일:'):print(color):print('03.png|링크=|]]') rest_length = rest_length - 3 end
while rest_length >= 1 do t:print('[[파일:'):print(color):print('01.png|링크=|]]') rest_length = rest_length - 1 end
return t:printall()
return t:printall()
end
end


local function bar(frame)
local function bar(frame)
local bgcolor = frame.args.bgcolor or 'Blue'
local color = frame.args[1] or ''
local str = frame.args.str or '&nbsp;'
local length = tonumber(frame:preprocess('{{#iferror: {{#expr:'..  frame.args[2] ..'}} | 0 }}')) or 0
local length = tonumber(frame:preprocess('{{#iferror: {{#expr:'..  frame.args.length ..'}} | 0 }}')) or 0
local round = frame.args.round or '' -- i. e. frame.args['round']
local type = frame.args.type or ''
return drawBar (color, length, round)
return drawBar ( bgcolor, length, str, type )
end
end


return {bar=bar, drawBar=drawBar}
return {bar=bar, drawBar=drawBar}

2023년 9월 13일 (수) 01:11 기준 최신판

이 모듈에 대한 설명문서는 모듈:NeoBar/설명문서에서 만들 수 있습니다

--{{막대}} 틀을 개선하는 {{새막대}} 틀을 만들기 위한 모듈입니다
--사용가능한 함수는 bar입니다.
local function drawBar (color, length, round) --막대를 그리는 함수 (막대의 색, 길이, 올림/내림/반올림)
	local t = require("모듈:Coutput")
	
	if length > 5000 then return ''		end --길이가 5000보다 큰 경우에는 아무것도 그리지 않습니다.
	if length <= 0 then return ''		end --길이가 0보다 작은 경우에도 아무것도 그리지 않습니다.
	
	local rest_length = --그리고 남은 길이, 즉, 그려야 할 나머지 길이,
		round == 'up' and  math.ceil(length) or -- 올림의 경우
		round == 'down' and math.floor(length) or --버림의 경우
		math.floor(length+.5) --  기본적으로는 반올림
		
	while rest_length >= 100 do t:print('[[파일:'):print(color):print('100.png|링크=|]]')rest_length = rest_length - 100 end
	while rest_length >= 50 do t:print('[[파일:'):print(color):print('50.png|링크=|]]') rest_length = rest_length - 50 end
	while rest_length >= 30 do t:print('[[파일:'):print(color):print('30.png|링크=|]]') rest_length = rest_length - 30 end
	while rest_length >= 10 do t:print('[[파일:'):print(color):print('10.png|링크=|]]') rest_length = rest_length - 10 end
	while rest_length >= 5 do t:print('[[파일:'):print(color):print('05.png|링크=|]]') rest_length = rest_length - 5 end
	while rest_length >= 3 do t:print('[[파일:'):print(color):print('03.png|링크=|]]') rest_length = rest_length - 3 end	
	while rest_length >= 1 do t:print('[[파일:'):print(color):print('01.png|링크=|]]') rest_length = rest_length - 1 end		
	
	return t:printall()
end

local function bar(frame)
	local color = frame.args[1] or '무'
	local length = tonumber(frame:preprocess('{{#iferror: {{#expr:'..  frame.args[2] ..'}} | 0 }}')) or 0
	local round = frame.args.round or '' -- i. e. frame.args['round']
	return drawBar (color, length, round)
end

return {bar=bar, drawBar=drawBar}