Aller au contenu

Module:Fix/Bac à sable

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 9 février 2021 à 21:54 et modifiée en dernier par Ideawipik (discuter | contributions) (Bac à sable pour tests d'évolution (discussions sur le projet Projet:Scribunto)). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

 Documentation[voir] [modifier] [historique] [purger]

Module utilisé par le métamodèle {{Fix}}, et indirectement par le modèle {{Référence nécessaire}} et dérivés.

local p = {}

function p.affichageBloc( args )
	local background = args.background or ''
	if background == '' then
		background = 'white'
	end
	
	local html = mw.html.create( '' )
		:wikitext( '\n' )
		:tag( 'div' )
			:cssText( 'position:relative; margin-top:0.8em;')
			:tag( 'div' )
				:addClass( 'need_ref' )
				:cssText( 'cursor:help; overflow:hidden; padding-bottom:0;' )
				:css{ background = background }
				:attr{ title = args.titre }
				:wikitext( args[1], '\n' )
				:done()
			:tag( 'div' )
				:addClass( 'need_ref_tag' )
				:cssText( 'position:absolute; top:-0.6em; left:1em; padding:0 0.5em; font-size:80%; line-height:1em;')
				:css{ background = background }
				:wikitext( args.message )
		:allDone()
		
	return tostring( html )
end

function p.affichageInline( args )
	local html = mw.html.create( '' )
	
	if args[1] and args[1] ~= '' then
		html:tag( 'span' )
				:addClass( 'need_ref' )
				:cssText( 'cursor:help;' )
				:attr{ title = args.titre }
				:wikitext( args[1] )
				:done()
		html:tag( 'sup' )
				:addClass( 'need_ref_tag' )
				:cssText ( 'padding-left:2px;' )
				:wikitext( args.message )
			:allDone()
	else
		html:tag( 'sup' )
				:addClass( 'need_ref_tag' )
				:cssText ( 'padding-left:2px;' )
				:attr{ title = args.titre }
				:wikitext( args.message )
			:allDone()
	end

	return tostring( html )
end

function p.affichageFix( frame )
	local args = frame.getParent and frame:getParent().args or frame
	
	local messageDate = ''
	local messageAide = ' ; v'
	if args.date and args.date ~= '' then
		messageDate = ' (demandé le ' .. args.date .. ')'
	else
		local infobulle_texte= mw.text.trim((args.infobulle or ''):gsub( '%b<>', '' ))
		if infobulle_texte ~= '' then
			if infobulle_texte:match( '[!?]$' ) then
				messageAide = ' V'
			end
		else
			messageAide = 'V'			
		end
		messageAide = messageAide .. 'oir l\'aide'
	end

	args.titre = mw.text.trim(( args.infobulle or '' ):gsub( '[,.;:]$', '' )) .. messageDate .. messageAide .. '.'
		
	if args[1] and args[1] ~= '' then
		
		if args[1]:match('\n[ \t]*\n')
			or args[1]:match('\n[*#:]')
			or args.bloc and args.bloc ~= ''
		then
			return p.affichageBloc( args )
		end
	end
	
	return p.affichageInline( args )
end

return p