Module:Abréviation
Ce module prend en charge les abréviations et leurs manipulations.
Ajouter une abréviation
Il suffit d'ajouter une paire de clé-valeur à la collection ABBR
.
- La clé correspond à l'abréviation et doit être écrit en lettres capitales.
- La valeur correspond au libellé associé à l'abréviation.
Merci d'ajouter la paire dans l'ordre alphabétique des clés.
Présentation des fonctions
contains()
: Permet de vérifier l'existence d'une abréviation.name()
: Retourne le libellé d'une abréviation.categories()
: Retourne une chaîne de caractères composée des catégories formées des abréviations et du sujet fournis par l'utilisateur.infobox_links()
: Utilisée pour les en-têtes d'infobox, cette fonction retourne une chaîne de caractères composée de liens formés des abréviations et du sujet fournis par l'utilisateur.
local p = {}
local tools = require('Module:Outils')
------------------------------------------------------
------------ Référentiel des jeux Fallout ------------
--- Merci de ne pas dupliquer ces données ailleurs ---
-- Si un nouveau jeu sort (\o/), merci de l'ajouter --
------------------------------------------------------
local abr = {
SFD = 'Starfield',
WIKI = 'Starfield wiki',
}
------------------------------------------------------
-- Vérifie l'existence d'une abréviation
function p.contains(frame)
local arg = tools.extractArgs(frame)[1] or ''
return abr[arg:upper()] ~= nil
end
-- Retourne le nom d'un jeu
function p.name(frame)
local arg = tools.extractArgs(frame)[1] or ''
return abr[arg:upper()] or ''
end
-- Génère une liste de catégories
function p.categories(frame)
local args = tools.extractArgs(frame)
local categories = ''
local abbs = args[1] or ''
local subject = args[2]
local sortkey = args[3]
if #abbs > 0 then
abbs = mw.text.split(abbs, "%s*,%s*")
end
if #abbs > 0 then
local prefix = ''
if subject then
prefix = subject .. ' de '
end
if sortkey then
sortkey = '|' .. sortkey
else
sortkey = ''
end
for i, abb in ipairs(abbs) do
local gameName = abr[abb:upper()]
if gameName then
categories = categories .. '[[Catégorie:' .. prefix .. gameName .. sortkey .. ']]'
end
end
end
if categories == '' then categories = nil end
return categories
end
-- Génère une liste de lien
function p.links(frame)
local args = tools.extractArgs(frame)
local links = ''
local abbs = args[1] or ''
local link = args['lien'] or args[2]
local subject = args['sujet'] or args[3]
local separator = args['séparateur'] or ', '
if #abbs > 0 then
abbs = mw.text.split(abbs, "%s*,%s*")
end
if #abbs > 0 then
local linkPrefix = ''
if link then
linkPrefix = link .. ' de '
end
local subjectPrefix = ''
if subject then
subjectPrefix = subject .. ' de '
end
for i, abb in ipairs(abbs) do
local gameName = abr[abb:upper()]
if gameName then
if i == 1 then
if abb:upper() == 'NON' then
links = subject .. ' ' .. gameName
else
links = '[['..linkPrefix..gameName..'|'..subjectPrefix..'\'\''..gameName..'\'\']]'
end
else
links = links..separator..'[['..linkPrefix..gameName..'|\'\''..gameName..'\'\']]'
end
end
end
elseif link then
links = '[['..link..'|'..(subject or link)..']]'
elseif subject then
links = subject
end
if links == '' then links = nil end
return links
end
return p