欢迎来到奇葩栖息地!欢迎加入Discord服务器:XfrfHCzfbW请先至特殊:参数设置验证邮箱后再进行编辑。特殊:参数设置挑选自己想要使用的小工具!不会编辑?请至这里学习Wikitext语法。

距离淮安市2022年中考还有142天。

模块:Infobox

来自奇葩栖息地
[创建 | 历史 | 清除缓存]文档页面
此模块没有文档页面。如果你知道如何使用模块,请创建它。
  1-- Infobox code modified by MyNe70 aka [[User:マジやばくね]]
  2
  3local p = {}
  4function p.infobox( f )
  5	local args = require('Module:ProcessArgs').merge(true)
  6	local isSubBox = args.subbox
  7	local title
  8	local imageArea
  9	local subHeader
 10	local footer
 11	
 12	if not isSubBox then
 13		if args.title and args.title ~= 'none' then
 14			title = args.title
 15			local titleNode = mw.html.create('div')
 16				:addClass('infobox-title')
 17				:cssText(args.titlestyle)
 18				:wikitext(title)
 19			title = tostring(titleNode)
 20		end
 21		
 22		imageArea = args.imagearea
 23		if not (imageArea and imageArea ~= 'none') then
 24			local images = {}
 25			local defaultImageSize = args.defaultimagesize or '160px'
 26			args.image1 = args.image1 or args.image
 27			args.image1size = args.image1size or args.imagesize or defaultImageSize
 28			
 29			local imgCount = {}
 30			for k, v in pairs(args) do
 31				if type(k) == 'string' then
 32					local image, num = k:match('(image)(%d+)$')
 33					if v:lower() ~= 'none' and image then
 34						table.insert(imgCount, tonumber(num))
 35					end
 36				end
 37			end
 38			table.sort(imgCount)
 39			
 40			for _, v in ipairs(imgCount) do
 41				local size = args['image' .. v .. 'size'] or defaultImageSize
 42				local image = '[[File:' .. args['image' .. v] .. '|' .. size .. ']]'
 43				
 44				table.insert(images, '<div>' .. image .. '</div>')
 45			end
 46			images = table.concat(images, '\n')
 47			
 48			imageArea = images ~= '' and images or 'none'
 49		end
 50		if imageArea and imageArea ~= 'none' then
 51			imageArea = '<div class="infobox-imagearea">' .. imageArea .. '</div>'
 52		else
 53			imageArea = nil
 54		end
 55		
 56		subHeader = args.subheader
 57		if subHeader then
 58			local subHeaderNode = mw.html.create('div')
 59				:addClass('infobox-subheader')
 60				:cssText(args.subheaderstyle)
 61				:wikitext(subHeader)
 62			subHeader = tostring(subHeaderNode)
 63		end
 64	
 65		footer = args.footer
 66		if footer then
 67			footer = '<div class="infobox-footer">' .. footer .. '</div>'
 68		end
 69	end
 70
 71	local rows = args.rows
 72	if rows then
 73		if isSubBox then
 74			rows = '<div class="infobox-rows subinfobox">' .. rows .. '</div>'
 75		else
 76			rows = '<div class="infobox-rows">' .. rows .. '</div>'
 77		end
 78	end
 79	
 80	if not (title or imageArea or subHeader or rows or footer) then
 81		return ''
 82	else
 83		local html = {}
 84		if not isSubBox then
 85			html = {
 86				'<div class="notaninfobox">',
 87				title or '',
 88				imageArea or '',
 89				subHeader or '',
 90				rows or '',
 91				footer or '',
 92				'</div>'
 93			}
 94		else
 95			html = {rows}
 96		end
 97		
 98		return table.concat(html, '')
 99	end
100end
101
102return p