Module:Image area:修订间差异
来自互联网一战博物馆
Iopk123451(留言 | 贡献) 创建页面,内容为“local p = {} local function imageLink( name, size, class ) local rows = { 'File:'..name } if size then table.insert(rows, ''..size) end if class then table.insert(rows, 'class='..class) end if name == 'No image.svg' then table.insert(rows, 'link=') end return '')..'' end function p.imageArea( f ) local args = require( 'Module:ProcessArgs' ).merge( true ) return p.main( args ) end function p.main( args ) local t…” 标签:移动版编辑 移动版网页编辑 |
(没有差异)
|
2025年9月15日 (一) 17:15的最新版本
此模块的文档可以在Module:Image area/doc创建
local p = {}
local function imageLink( name, size, class )
local rows = {
'File:'..name
}
if size then
table.insert(rows, ''..size)
end
if class then
table.insert(rows, 'class='..class)
end
if name == 'No image.svg' then
table.insert(rows, 'link=')
end
return '[['..table.concat(rows, '|')..']]'
end
function p.imageArea( f )
local args = require( 'Module:ProcessArgs' ).merge( true )
return p.main( args )
end
function p.main( args )
local titleObject = mw.title.getCurrentTitle()
local title = args.title or titleObject.baseText
local rlinkTriggered = false
local titleImageLoaded = false
local imageArea
local images = {}
local invImages = {}
local defaultImageSize = args.defaultimagesize or '150px'
local defaultImageClass = args.defaultimageclass
args.image1 = args.image1 or args.image or 'No image.svg'
args.image1size = args.image1size or args.imagesize
args.image1class = args.image1class or args.imageclass
args.invimage1 = args.invimage1 or args.invimage
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
local class = args['image' .. v .. 'class'] or defaultImageClass
if image:match( ';' ) then
if not animate then
animate = require( 'Module:Animate' ).animate
end
image = animate{ image, size, nil, class }
elseif image:match( '\\' ) then
local trimages = {}
for v in mw.text.gsplit(string.gsub( image, ' ', '_' ), '\\' ) do
local current_image = imageLink( v, size, class )
if v:match( '_Simplified%.[^.]+$' ) then
trimages[1] = current_image
elseif v:match ( '_Traditional%.[^.]+$' ) then
trimages[2] = current_image
elseif v:match ( '_Traditional_HK%.[^.]+$' ) then
trimages[3] = current_image
end
end
image = require( 'Module:STConversion' ).call(trimages)
else
image = imageLink( image, size, class )
end
table.insert( images, '<div>' .. image .. '</div>' )
end
images = table.concat( images, '\n' )
if #invImgCount > 0 then
table.sort( invImgCount )
local slot
local invAliases = mw.loadData( 'Module:Inventory slot/Aliases' )
for k, v in ipairs( invImgCount ) do
local image = args['invimage' .. v]
if image == '----' then
table.insert( invImages, '</div><div style="padding-top:.5em">' )
elseif image then
if not slot then
slot = require( 'Module: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
if imageArea and imageArea ~= 'none' then
imageArea = '<div class="infobox-imagearea">' .. imageArea .. '</div>'
else
imageArea = ''
end
return imageArea
end
return p