새로 오신 분들은 길라잡이위키 규칙을 꼭 읽어주세요.

문서 작성번역을 도와주시면 이 위키에 큰 힘이 됩니다.

한국어판 Minecraft 위키는 어떠한 커뮤니티(Discord, 단톡방, 멀티 서버 등)도 개설·운영하고 있지 않습니다.

As part of the Unified Community Platform project, your wiki will be migrated to the new platform in the next few weeks. Read more here.

모듈:Infobox

Minecraft Wiki
이동: 둘러보기, 검색
[만들기 | 역사 | 캐시 제거]설명문서
이 모듈의 설명문서가 없습니다. 이 모듈의 사용 방법을 안다면, 설명문서를 만들어 주십시오.
local p = {}
function p.infobox( f )
	local args = require( '모듈:ProcessArgs' ).merge( true )
    local Reverselink = require( '모듈:Reverselink' )
	local titleObject = mw.title.getCurrentTitle()
	local title = args.title or Reverselink.xlink( titleObject.baseText )
	
	local imageArea = args.imagearea
	if not imageArea and imageArea ~= 'none' then
		local images = {}
		local invImages = {}
		local defaultImageSize = args.defaultimagesize or '150px'
		args.image1 = args.image1 or args.image or 'title'
		args.image1size = args.image1size or args.imagesize
		args.invimage1 = args.invimage1 or args.invimage or 'title'
		
		local imgCount = {}
		local invImgCount = {}
		for k, v in pairs( args ) do
			if type( k ) == 'string' then
				local image, num = k:match( '^(image)(%d+)$' )
				local invImage, invNum = k:match( '^(invimage)(%d+)$' )
				if v:lower() ~= 'none' then
					if image then
						table.insert( imgCount, tonumber( num ) )
					elseif invImage then
						table.insert( invImgCount, tonumber( invNum ) )
					end
				end
			end
		end
		
		table.sort( imgCount )
		local animate
		for k, v in ipairs( imgCount ) do
			local image = args['image' .. v]
			local size = args['image' .. v .. 'size'] or defaultImageSize
			
			if image == 'title' then
				local imageTitle = mw.title.new( 'Media:' .. title .. '.png' )
				if imageTitle and imageTitle.exists then
					image = '[[파일:' .. title .. '.png|' .. size .. ']]'
				elseif titleObject.namespace == 0 then
					image = '[[파일:No image.svg|' .. size .. '|link=파일:' .. title .. '.png|' .. title .. '.png 업로드]]'
				else
					image = '[[파일:No image.svg|' .. size .. '|link=]]'
				end
			elseif image:match( ';' ) then
				if not animate then
					animate = require( '모듈:Animate' ).animate
				end
				image = animate{ image, size }
			else
				image = '[[파일:' .. image .. '|' .. size .. ']]'
			end
			
			table.insert( images, '<div>' .. image .. '</div>' )
		end
		images = table.concat( images, '\n' )
		
		if #invImgCount > 0 then
			table.sort( invImgCount )
			local slot
			local invIds = mw.loadData( '모듈:InvSprite' ).ids
			for k, v in ipairs( invImgCount ) do
				local image = args['invimage' .. v]
				if image == 'title' then
					local imageExists
					if invIds[title] then
						imageExists = true
					else
						local imageTitle = mw.title.new( '파일:Grid ' .. title .. '.png' )
						imageExists = imageTitle and imageTitle.exists
					end
					if imageExists then
						image = title
					else
						image = false
					end
				end
				
				if image == '----' then
					table.insert( invImages, '</div><div style="padding-top:.5em">' )
				elseif image then
					if not slot then
						slot = require( '모듈:Inventory slot' ).slot
					end
					table.insert( invImages, slot{ image, link = 'none' } )
				end
			end
			
			if slot and #invImages > 0 then
				invImages = '<div class="infobox-invimages"><div>' .. table.concat( invImages, '' ) .. '</div></div>'
			else
				invImages = ''
			end
		else
			invImages = ''
		end
		
		if images ~= '' or invImages ~= '' then
			imageArea = images .. '\n' .. invImages
		else
			imageArea = 'none'
		end
	end
	if imageArea and imageArea ~= 'none' then
		imageArea = '<div class="infobox-imagearea">' .. imageArea .. '</div>'
	else
		imageArea = ''
	end
	
	local footer = args.footer
	if footer then
		footer = '| class="infobox-footer" colspan="2" | ' .. footer
	end

	local html = {
		'<div class="notaninfobox">',
			'<div class="mcwiki-header infobox-title">' .. (args.title or titleObject.baseText) .. '</div>',
			imageArea,
			'{| class="infobox-rows" cellspacing="1" cellpadding="4"',
			'|-',
			args.rows or '',
			footer or '',
			'|}',
		'</div>'
	}
	
	return table.concat( html, '\n' )
end

return p