Module:Manipulation formatage
Apparence
[voir] [modifier] [historique] [purger]
Ce module est utilisé par les modèles {{Italique si non précisé}} et {{Retire italiques}}.
Voir aussi : Catégorie:Italique à vérifier dans un paramètre de modèle
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- luacheck: globals mw
local p = {}
function p.italiqueSiNonPrecise( value, debugMode )
local result
if
( value:find( "''", nil, true )
and ( value:match( "%f[']''%f[^']" ) -- wikicode italique
or value:match( "%f[']'''''%f[^']" ) -- wikicode italique + gras
)
)
or ( value:find( '<', nil, true )
and ( value:match( '<[iI][> %t]' ) -- balise <i>
or value:match( '<[eE][mM][> %t]' ) -- balise <em>
)
)
then
result = value
-- détection de « Titre ''(film, 2020)'' » qui serait à remplacer par « ''Titre'' (film, 2020) »
if value:match( "%f[']'' ?%b() ?''%f[^']" ) then
result = result .. '[[Catégorie:Italique à vérifier dans un paramètre de modèle]]'
end
else
result = '<i>' .. value .. '</i>'
end
if debugMode then
return mw.text.nowiki( result )
else
return result
end
end
function p.retireItaliques( value, debugMode )
-- les closing tags ne sont pas censés contenir d'attributs,
-- mais le parseur MediaWiki est tolérant et les laisse passer
-- rappel : attention, gsub() retourne deux valeurs
local result = value
:gsub( "%f[']''%f[^']" , '' ) -- wikicode italique
:gsub( "%f[']'''''%f[^']" , "'''" ) -- wikicode italique + gras (on remplace par gras : ''')
:gsub( '</?[iI][ %t]*>' , '' ) -- balises <i> et </i>
:gsub( '</?[iI][ %t]+[^>]+>' , '' ) -- balises <i attributs> et </i attributs>
:gsub( '</?[eE][mM][ %t]*>' , '' ) -- balises <em> et </em>
:gsub( '</?[eE][mM][ %t]+[^>]+>', '' ) -- balises <em attributs> et </em attributs>
if debugMode then
return mw.text.nowiki( result )
else
return result
end
end
local function isDebug( frame )
local debugMode = false
if frame.args.debug and frame.args.debug ~= '' then
debugMode = ( require 'Module:Yesno' )( frame.args.debug )
end
return debugMode
end
function p.modeleItaliqueSiNonPrecise( frame )
local value = mw.text.trim( frame.args[ 1 ] )
local debugMode = isDebug( frame )
return p.italiqueSiNonPrecise( value, debugMode )
end
function p.modeleRetireItaliques( frame )
local value = mw.text.trim( frame.args[ 1 ] )
local debugMode = isDebug( frame )
return p.retireItaliques( value, debugMode )
end
return p