« Module:Formatage du titre » : différence entre les versions
Contenu supprimé Contenu ajouté
transmission de tous les arguments |
simplification ; l'économie de ce require ne me semble pas justifier cet ajout de complexité, surtout que le présent module n'est généralement utilisé qu'une fois par page |
||
Ligne 1 : | Ligne 1 : | ||
⚫ | |||
local _moduleYesno |
|||
local function yesno( ... ) |
|||
if not _moduleYesno then |
|||
⚫ | |||
end |
|||
return _moduleYesno( ... ) |
|||
end |
|||
local p = {} |
local p = {} |
Dernière version du 26 mars 2024 à 21:45
[voir] [modifier] [historique] [purger]
Ce module est utilisé par le modèle {{Titre en italique}}, ainsi que par les briques d'infobox {{Infobox V3/Début}} et Module:Infobox/Titre.
Page à prévisualiser pour vérifier les modifications : Discussion module:Formatage du titre/Test.
Voir aussi
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 yesno = require( 'Module:Yesno' )
local p = {}
function p.formatTitle(frame)
local args = frame.args
local title
if args.title then
title = mw.title.new(args.title)
else
title = mw.title.getCurrentTitle()
end
-- Découpe le titre en trois parties :
-- 1. prefix = espace de noms et éventuellement page mère (si c'est une sous-page)
-- 2. mainPart = partie à mettre en forme (page ou sous-page, sans partie entre parenthèses)
-- 3. disambig = partie entre parenthèses
local prefix = ''
if title.nsText ~= '' then
prefix = title.nsText .. ':'
end
if title.isSubpage then
prefix = prefix .. title.baseText .. '/'
end
local mainPart = title.subpageText
local disambig = ''
local disambigStart = mainPart:find(' %(.+%)$')
if disambigStart then
disambig = mainPart:sub(disambigStart)
mainPart = mainPart:sub(1, disambigStart - 1)
end
-- Recollement des trois parties en insérant une balise de langue et l'italique si besoin.
local lang = args.lang
if lang and lang ~= '' then
mainPart = '<span lang="' .. lang .. '">' .. mainPart .. '</span>'
end
local italic = args.italic
if italic and italic ~= '' and yesno(italic) then
mainPart = '<i>' .. mainPart .. '</i>'
end
return prefix .. mainPart .. disambig
end
--[[
Change le format de la partie principale d'un titre de page.
Les changements possibles sont la mise en italique et l'ajout d'une indication de langue.
Paramètres (passés via frame)
lang : si non vide, insère une balise indiquant que la partie principale du titre est dans cette langue.
italic : si non vide, met en italique la partie principale du titre.
options : deuxième paramètre passé à DISPLAYTITLE. Les valeurs possibles sont "noreplace" et "noerror".
--]]
function p.setDisplayTitle(frame)
local displayTitle = p.formatTitle(frame)
if displayTitle == mw.title.getCurrentTitle().prefixedText then
return ''
end
return mw.getCurrentFrame():callParserFunction('DISPLAYTITLE', displayTitle, frame.args.options)
end
return p