Module:Infobox

来自互联网一战博物馆
Iopk123451留言 | 贡献2025年9月15日 (一) 17:14的版本 (创建页面,内容为“local p = {} function p.infobox() local args = require( 'Module:ProcessArgs' ).merge( true ) return args[ 'infobox-body-only' ] and p.body( args ) or p.fullInfobox( args ) end function p.infoboxBody() return p.body( require( 'Module:ProcessArgs' ).merge( true ) ) end function p.infoboxRows() return p.rows( require( 'Module:ProcessArgs' ).merge( true ) ) end function p.infoboxRow() return p.row( require( 'Module:ProcessArgs' ).merge( true ) ) end funct…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

此模块的文档可以在Module:Infobox/doc创建

local p = {}

function p.infobox()
	local args = require( 'Module:ProcessArgs' ).merge( true )
	return args[ 'infobox-body-only' ] and p.body( args ) or p.fullInfobox( args )
end

function p.infoboxBody()
	return p.body( require( 'Module:ProcessArgs' ).merge( true ) )
end

function p.infoboxRows()
	return p.rows( require( 'Module:ProcessArgs' ).merge( true ) )
end

function p.infoboxRow()
	return p.row( require( 'Module:ProcessArgs' ).merge( true ) )
end

function p.row( args )
	return mw.html.create( 'div' ):addClass( 'infobox-row' )
		:tag( 'div' ):addClass( 'infobox-row-label' ):wikitext( '\n' .. mw.language.getContentLanguage():ucfirst( args[ 1 ] or args.label or '' ) ):done()
		:tag( 'div' ):addClass( 'infobox-row-field' ):wikitext( '\n' .. ( args[ 2 ] or args.field or '' ) ):addClass( args.class ):done()
	:done()
end

function p.rows( args )
	return tostring( mw.html.create( 'div' ):addClass( 'infobox-rows' ):wikitext( args.rows or '' ) ) ..
		( args.footer and tostring( mw.html.create( 'div' ):addClass( 'infobox-footer' ):wikitext( args.footer ) ) or '' )
end

function p.body( args )
	return mw.ustring.format( '%s\n%s',
		args.imagearea or require( 'Module:Image area' ).main( args ),
		args[ 'infobox-rows' ] or p.rows( args )
	)
end

function p.fullInfobox( args )
	return require( 'Module:TSLoader' ).call( 'Template:Infobox/styles.css' ) .. tostring(
		mw.html.create( 'div' ):addClass( 'notaninfobox tabber-container-infobox' )
			:tag( 'div' ):addClass( 'mcwiki-header infobox-title' ):wikitext( args.title or mw.title.getCurrentTitle().baseText ):done()
			:wikitext( args[ 'infobox-body' ] or p.body( args ) )
	)
end

return p