Modifications

Sauter à la navigation Sauter à la recherche

Module:Image

2 206 octets ajoutés, 3 novembre 2019 à 18:33
aucun résumé de modification
end
table.insert( wiki, legende )
return '[[Fichier:' .. table.concat( wiki, '|' ) .. ']]'
end
return p.image( args )
end
 
 
function p.imageJob( rawArgs )
local argsList = { 'image', 'format', 'upright', 'taille', 'border', 'légende', 'alt', 'link', 'page', 'class', 'lang', 'align', 'valign' }
local args = {}
for _, v in ipairs( argsList ) do
args[ v ] = trim( rawArgs[ v ] )
end
if not args.image then
return
end
-- analyse du nom de fichier
local image = args.image
:gsub( '%[%[[%s_]*[Cc]atégorie[%s_]*:.-%]%]', '' )
:gsub( '%[%[[%s_]*[Cc]ategory[%s_]*:.-%]%]', '' )
:gsub( '%[%[[Ff]ichier:([^|%[%]]+).+', '%1' )
:gsub( '%[%[[Ii]mage:([^|%[%]]+).+', '%1' )
:gsub( '%[%[[Ff]ile:([^|%[%]]+).+', '%1' )
-- analyse de la légende
local legende = args[ 'légende' ] and args[ 'légende' ]
:gsub( '%[%[[%s_]*[Cc]at[ée]gor[yi]e?[%s_]*:.-%]%])', '' )
-- analyse de la taille
local taille = args.taille and args.taille:gsub( '%s', '' ):gsub( '(%d)$', '%1px' )
if taille and not ( taille:match '%d+x?%d*px' or taille:match 'x%d+px' ) then
taille = nil
end
-- analyse de l'alternative
local alt = nettoyageAlt( args.alt )
-- génération du lien
local wiki = { image }
table.insert( wiki, valide( args.format, { 'thumb', 'frameless', 'frame', 'vignette', 'sanscadre', 'cadre', 'thumbnail', } ) )
table.insert( wiki, args.border and 'border' )
table.insert( wiki, taille )
if tonumber( args.upright )
and not taille
and valide(args.format, { 'thumb', 'vignette', 'thumbnail', 'frameless', 'sanscadre', } )
then
table.insert( wiki, 'upright=' .. args.upright )
end
table.insert( wiki, valide( args.align, { 'left', 'right', 'center', 'none', 'gauche', 'droite', 'centre', 'centré' } ) )
table.insert( wiki, valide( args.valign, { 'top', 'text-top', 'super', 'baseline', 'sub', 'middle', 'text-bottom', 'bottom', 'haut', 'haut-texte', 'sup', 'base', 'milieu', 'bas-texte', 'bas', } ) )
table.insert( wiki, alt and 'alt=' .. alt )
table.insert( wiki, args.link and 'link=' .. args.link )
table.insert( wiki, args.page and 'page=' .. args.page )
table.insert( wiki, args.class and 'class=' .. args.class )
if args.lang and image:match( '.svg' ) then
table.insert( wiki, 'lang=' .. args.lang )
end
table.insert( wiki, legende )
return table.concat( wiki, '|' )
end

Menu de navigation