Aller au contenu

Module:P.

Cette page est protégée.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 28 septembre 2024 à 19:36 et modifiée en dernier par Od1n (discuter | contributions) (implémentation en Lua de {{p.}} avec paramètre, vu que dans ce cas il y a déjà une invocation Lua (cf. 210438433) : plus performant (on économise tous les sous-modèles), adapte l'infobulle sur « p. », beaucoup plus de possibilités (par exemple, on utilise string.* plus performant que mw.ustring.*, on détecte davantage d'intervalles…)). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

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

Ce module est utilisé par le modèle {{p.}}.

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.withValue( frame )
	local value = frame.args[ 'value' ]

	-- code inspiré de [[Module:Commun]].formatePassage (mais adapté et simplifié)

	if value:match( '^%d$' ) then -- uniquement des chiffres
		return abbr( 'p.', 'page' ) .. '&nbsp;' .. value -- nobr() serait inutile ici

	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+$' ) then -- tiret moyen (attention, c'est un caractère sur 3 octets)
		return abbr( 'p.', 'pages' ) .. '&nbsp;'.. nobr( value ) -- nobr() pour que la valeur soit insécable

	else
		return abbr( 'p.', 'page(s)' ) .. '&nbsp;' .. value -- pas de nobr(), au cas où la valeur serait longue
	end
end

return p