VOOZH about

URL: https://minecraft.wiki/w/Module:Infobox

⇱ Module:Infobox – Minecraft Wiki


Module:Infobox

From Minecraft Wiki
Jump to navigation Jump to search
Documentation[view] [edit] [history] [purge]Jump to code ↴

Implements {{Infobox}}.

[view] [edit] [history] [purge]The above documentation is transcluded from Module:Infobox/doc.
localp={}
functionp.infobox(f)
localargs=require('Module:ProcessArgs').merge(true)
localtitleObject=mw.title.getCurrentTitle()
localtitle=args.titleortitleObject.subpageText
localsubtitle=args.subtitleor''
localtemplate=f:getParent():getTitle():lower():gsub('template:',''):gsub('infobox ','')
localheaderArea=''
localjson={
images={},
invimages={},
rows={}
}
localtitleArea=args.titlearea
ifnottitleAreathen
json.title=title
ifsubtitle~=''then
json.subtitle=subtitle
subtitle='<br><small class="infobox-subtitle">'..subtitle..'</small>'
end
titleArea=title..subtitle
end
localimageArea=args.imagearea
ifnotimageAreaandimageArea~='none'then
localimages={}
localinvImages={}
localdefaultImageSize=args.defaultimagesizeor'150px'
localdefaultImageClass=args.defaultimageclass
args.image1=args.image1orargs.imageor'title'
args.image1size=args.image1sizeorargs.imagesize
args.image1class=args.image1classorargs.imageclass
args.image1caption=args.image1captionorargs.imagecaptionor''
args.invimage1=args.invimage1orargs.invimageor'none'
args.group1=args.group1orargs.group
args.group1size=args.group1sizeorargs.groupsize
args.group1class=args.group1classorargs.groupclass
args.group1caption=args.group1captionorargs.groupcaptionor''
localimgCount={}
localinvImgCount={}
localgroupCount={}
localgroupImgList={}
fork,vinpairs(args)do
iftype(k)=='string'then
localimage,num=k:match('^(image)(%d+)$')
localinvImage,invNum=k:match('^(invimage)(%d+)$')
localgroup,groupNum=k:match('^(group)(%d+)$')
localgroupImg,groupImgNum=k:match('^(%d+)-(%d+)$')
ifv:lower()~='none'then
ifimagethen
table.insert(imgCount,tonumber(num))
elseifinvImagethen
table.insert(invImgCount,tonumber(invNum))
elseifgroupthen
table.insert(groupCount,tonumber(groupNum))
ifnotgroupImgList['group'..groupNum]then
groupImgList['group'..groupNum]={}
end
elseifgroupImgthen
ifnotgroupImgList['group'..groupImg]then
groupImgList['group'..groupImg]={}
end
table.insert(groupImgList['group'..groupImg],tonumber(groupImgNum))
end
end
end
end
localanimate
if#groupCount>0then
table.sort(groupCount)
localtabber={}
fork,vinipairs(groupCount)do
localgroup=args['group'..v]
localgroupSize=args['group'..v..'size']ordefaultImageSize
localgroupClass=args['group'..v..'class']ordefaultImageClass
localgroupCaption=args['group'..v..'caption']or''
localgroupImages={}
table.sort(groupImgList['group'..v])
for_,winipairs(groupImgList['group'..v])do
localimage=args[v..'-'..w]
localsize=args[v..'-'..w..'size']orargs['*-'..w..'size']orgroupSize
localclass=args[v..'-'..w..'class']orargs['*-'..w..'class']orgroupClass
localcaption=args[v..'-'..w..'caption']orargs['*-'..w..'caption']or''
ifstring.match(image,'UNIQ%-%-gallery%-')then
image=image
elseifimage:match(';')then
ifnotanimatethen
animate=require('Module:Animate').animate
end
image=animate{image,size,class=class}
else
json.images[#json.images+1]=image
localaltText=image..': Infobox image for Minecraft '..template.." '"..title.."'"
image='[[File:'..image..'|'..size..'|class='..(classor'')..'|alt='..altText..']]'
end
ifcaption~=''then
caption='<div class="infobox-imagecaption">\n'..caption..'\n</div>'
end
table.insert(groupImages,'<div>'..image..caption..'</div>')
end
ifgroupCaption~=''then
groupCaption='<div class="infobox-imagecaption">\n'..groupCaption..'\n</div>'
end
table.insert(tabber,'|-|'..group..'=\n'..table.concat(groupImages,'\n')..groupCaption)
end
table.insert(images,'<div>'..f:extensionTag('tabber',table.concat(tabber,'\n'))..'</div>')
end
table.sort(imgCount)
fork,vinipairs(imgCount)do
localimage=args['image'..v]
localsize=args['image'..v..'size']ordefaultImageSize
localclass=args['image'..v..'class']ordefaultImageClass
localcaption=args['image'..v..'caption']or''
ifimage=='title'then
localimageTitle=mw.title.new('Media:'..title..'.png')
if#groupCount==0andimageTitleandimageTitle.existsthen
json.images[#json.images+1]=title..'.png'
localaltText=title..'.png: Infobox image for Minecraft '..template.." '"..title.."'"
image='[[File:'..title..'.png|'..size..'|class='..(classor'')..'|alt='..altText..']]'
else
image=''
end
--[=[
				elseif titleObject.namespace == 0 then
					image = '[[File:No image.svg|' .. size .. '|link=File:' .. title .. '.png|Upload ' .. title .. '.png]]'
				else
					image = '[[File:No image.svg|' .. size .. '|link=]]'
				end
			]=]
elseifstring.match(image,'UNIQ%-%-gallery%-')then
image=image
elseifimage:match(';')then
ifnotanimatethen
animate=require('Module:Animate').animate
end
image=animate{image,size,class=class}
else
json.images[#json.images+1]=image
localaltText=image..': Infobox image for Minecraft '..template.." '"..title.."'"
image='[[File:'..image..'|'..size..'|class='..(classor'')..'|alt='..altText..']]'
end
ifcaption~=''then
caption='<div class="infobox-imagecaption">\n'..caption..'\n</div>'
end
ifimage~=''orcaption~=''then
table.insert(images,'<div>'..image..caption..'</div>')
end
end
images=table.concat(images,'\n')
if#invImgCount>0then
table.sort(invImgCount)
localslot
localinvTitle=mw.title.new('Media:Invicon '..title..'.png')
localinvAliases=mw.loadData('Module:Inventory slot/Aliases')
fork,vinipairs(invImgCount)do
localimage=args['invimage'..v]
ifimage=='title'then
ifinvTitleandinvTitle.existsorinvAliases[title]then
image=title
else
image=false
end
end
ifimage=='----'then
table.insert(invImages,'</div><div style="padding-top:.5em">')
elseifimagethen
ifnotslotthen
slot=require('Module:Inventory slot').slot
end
json.invimages[#json.invimages+1]=image
table.insert(invImages,slot{image,link='none'})
end
end
ifslotand#invImages>0then
invImages='<div class="infobox-invimages"><div>'..table.concat(invImages,'')..'</div></div>'
else
invImages=''
end
else
invImages=''
end
ifimages~=''orinvImages~=''then
imageArea=images..'\n'..invImages
else
imageArea='none'
end
end
ifimageAreaandimageArea~='none'then
imageArea='<div class="infobox-imagearea animated-container">'..imageArea..'</div>'
else
localgroupArea=args.grouparea
ifgroupAreathen
imageArea=groupArea
else
imageArea=''
end
end
localextraText=args.extratext
ifextraTextandextraText~='none'then
json.extratext=extraText
extraText='<div class="infobox-extratext">'..extraText..'</div>'
else
extraText=''
end
headerArea=imageArea..''..extraText
localfooter=args.footer
iffooterthen
json.footer=footer
footer='| class="infobox-footer" colspan="2" | '..footer
end
localrepl=function(label,field)
json.rows[#json.rows+1]={
label=mw.text.jsonDecode(label:gsub('\n','\\n')),
field=mw.text.jsonDecode(field:gsub('\n','\\n'))
}
return''
end
args.rows=string.gsub(args.rowsor'','<code class="history%-json">{"label": (".-"), "field": (".-")}</code>\n',repl)
localhtml={
'<div class="infobox notaninfobox '..(args.infoboxclassor'')..'">',
'<div class="mcwiki-header infobox-title">'..titleArea..'</div>',
headerArea,
'{| class="infobox-rows" cellspacing="1" cellpadding="4"',
'|-',
args.rowsor'',
footeror'',
'|}',
f:callParserFunction('#tag',{'pre',class='history-json noexcerpt navigation-not-searchable',
mw.text.jsonEncode(json,mw.text.JSON_PRETTY)
}),
'</div>',
}
returntable.concat(html,'\n')
end
returnp
Retrieved from "https://minecraft.wiki/w/Module:Infobox?oldid=3616221"

Navigation menu