Module:P.
Apparence
[voir] [modifier] [historique] [purger]
Ce module est utilisé par le modèle {{p.}}.
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.
local p = {}
local function abbr( texte, signification )
return '<abbr class="abbr" title="' .. signification .. '">' .. texte .. '</abbr>'
end
local function nobr( texte )
return '<span class="nowrap">' .. texte .. '</span>'
end
function p.main( frame )
local value = frame.args[ 'optionalValue' ]
-- utilisation sans paramètre
if value == '' then
return abbr( 'p.', 'page(s)' ) .. ' '
end
-- code inspiré de [[Module:Biblio/Commun]].formatePassage (mais adapté et simplifié)
-- nombre entier
if value:match( '^[%dIVXLCDM]+$' ) then -- uniquement des chiffres (arabes ou romains)
return abbr( 'p.', 'page' ) .. ' ' .. value -- nobr() serait inutile ici
-- intervalle
elseif value:match( '^%d+ ?%- ?%d+$' ) -- "tiret du 6" (noter que c'est un caractère à escaper dans les regexes Lua)
or value:match( '^%d+ ?– ?%d+$' ) -- tiret moyen (attention, c'est un caractère sur 3 octets)
or value:match( '^[IVXLCDM]+ ?%- ?[IVXLCDM]+$' ) -- même chose avec les nombres romains
or value:match( '^[IVXLCDM]+ ?– ?[IVXLCDM]+$' ) then
return abbr( 'p.', 'pages' ) .. ' '.. nobr( value ) -- nobr() pour que la valeur soit insécable
-- toute autre valeur
else
return abbr( 'p.', 'page(s)' ) .. ' ' .. value -- pas de nobr(), au cas où la valeur serait longue
end
end
return p