Module:PageInfo
De Nefald
Autres actions
La documentation pour ce module peut être créée à Module:PageInfo/doc
-- =================================================================
-- FONCTION CORRIGÉE ET AMÉLIORÉE pour extraire la description
-- =================================================================
function p.getDescription(frame)
-- CORRECTION 1 : Accepter un paramètre nommé "page" OU le premier paramètre non nommé.
-- Ceci rend le module plus flexible.
local pageName = frame.args.page or frame.args[1]
if not pageName or pageName == '' then
-- Pas de page fournie, on ne renvoie rien pour ne pas polluer DPL.
return ''
end
local pageObj = mw.title.new(pageName)
if not pageObj or not pageObj.exists then
return "''Page '" .. pageName .. "' inexistante''"
end
local content = pageObj:getContent()
if not content then
return "''Page '" .. pageName .. "' vide''"
end
-- CORRECTION 2 : Utilisation d'une regex beaucoup plus robuste pour trouver la description.
-- Elle capture le contenu (même sur plusieurs lignes) jusqu'au prochain paramètre.
-- (.-) : capture non-gourmande de n'importe quel caractère, y compris les retours à la ligne.
-- \n%s*| : s'arrête lorsqu'on trouve un retour à la ligne, du blanc, et un nouveau pipe,
-- ce qui marque le début du paramètre suivant de l'infobox.
local desc = content:match('|%s*description%s*=%s*(.-)%s*\n%s*|')
if desc and desc ~= '' then
-- On a trouvé une description, on la nettoie et on la retourne.
return mw.text.trim(desc)
end
-- Si on n'a rien trouvé, on retourne un message clair.
return "''Description non trouvée''"
end