705
modifications
Page créée avec « 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', } --------------------------------------------... » |
Aucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
local p = {} | local p = {} | ||
------------------------------------------------------ | ------------------------------------------------------ | ||
-- | -- Référentiel des abréviations -- | ||
-- | -- Merci de ne pas dupliquer ces données ailleurs -- | ||
-- Si un nouveau jeu sort (\o/), merci de l | -- Si un nouveau jeu sort (\o/), merci de l"ajouter -- | ||
------------------------------------------------------ | ------------------------------------------------------ | ||
local | local ABBR = { | ||
SF = "Starfield", | |||
WIKI | WIKI = "Starfield Wiki", | ||
} | } | ||
Ligne 17 : | Ligne 15 : | ||
-- Vérifie l'existence d'une abréviation | -- Vérifie l'existence d'une abréviation | ||
function p.contains( | function p.contains(args) | ||
return ABBR[(args[1] or ""):upper()] ~= nil | |||
end | end | ||
-- Retourne le | -- Retourne le mot complet d"une abréviation | ||
function p.name( | function p.name(args) | ||
return ABBR[(args[1] or ""):upper()] | |||
end | end | ||
-- Génère une liste de catégories | -- Génère une liste de catégories à partir de plusieurs abréviations. | ||
function p.categories( | -- Si on souhaite par exemple générer les catégories Lieu pour SF et WIKI, | ||
-- alors la fonction générera la chaîne suivante. | |||
-- `[[Catégorie:Lieu de Starfield]][[Catégorie:Lieu de Starfield Wiki]]` | |||
-- Il est possible de définir une clé de tri. | |||
function p.categories(args) | |||
local | local abbrs = args[1] | ||
local subject = args[2] | local subject = args[2] or "" | ||
local sortkey = args[3] | local sortkey = args[3] | ||
if | -- On a au moins besoin des abréviations sinon on ne | ||
-- génère rien. | |||
if abbrs == nil then | |||
return nil | |||
end | |||
-- Les abréviations sont séparées par des virgules | |||
-- On coupe la chaîne pour obtenir une liste. | |||
abbrs = mw.text.split(abbrs, "%s*,%s*") | |||
local categories = "" | |||
local prefix = "" | |||
if subject then | |||
prefix = subject .. " de " | |||
end | |||
if sortkey then | |||
sortkey = "|" .. sortkey | |||
else | |||
sortkey = "" | |||
end | end | ||
for i, abbr in ipairs(abbrs) do | |||
local name = ABBR[abbr:upper()] | |||
if name ~= nil then | |||
category = string.format( | |||
"[[Catégorie:%s%s%s]]", | |||
prefix, | |||
name, | |||
sortkey | |||
) | |||
categories = categories .. category | |||
end | end | ||
end | end | ||
if categories == | if categories == "" then | ||
return nil | |||
end | |||
return categories | return categories | ||
end | end | ||
-- Génère une liste de lien | -- Génère une liste de lien à partir de plusieurs abréviations. | ||
function p. | -- Utilisée dans l'en-tête des infobox. | ||
local args = | -- Si on souhaite par exemple générer les catégories Lieu pour SF et WIKI, | ||
-- alors la fonction formera une chaîne de ce genre. | |||
-- `[[Lieu de Starfield]], [[Lieu de Starfield Wiki|Starfield Wiki]]` | |||
-- Il est possible de définir le séparateur de liens. | |||
function p.infobox_links(args) | |||
local abbrs = args[1] | |||
local link = args["lien"] or args[2] | |||
local subject = args["sujet"] or args[3] | |||
local separator = args["séparateur"] or ", " | |||
-- On a au moins besoin des abréviations sinon on ne | |||
-- génère rien. | |||
if abbrs == nil then | |||
return nil | |||
end | |||
-- Les abréviations sont séparées par des virgules | |||
-- On coupe la chaîne pour obtenir une liste. | |||
abbrs = mw.text.split(abbrs, "%s*,%s*") | |||
local link_prefix = "" | |||
if link then | |||
link_prefix = link .. " de " | |||
end | |||
local subject_prefix = "" | |||
if subject then | |||
subject_prefix = subject .. " de " | |||
end | |||
local links = | local links = "" | ||
local j = 0 | |||
local | |||
for i, abbr in ipairs(abbrs) do | |||
local name = ABBR[abbr:upper()] | |||
if name ~= nil then | |||
j = j + 1 | |||
if | |||
if | if j == 1 then | ||
links = string.format( | |||
"[[%s%s|%s''%s'']]", | |||
link_prefix, | |||
name, | |||
subject_prefix, | |||
name | |||
else | ) | ||
else | |||
links = string.format( | |||
"%s%s[[%s%s|''%s'']]", | |||
links, | |||
separator, | |||
link_prefix, | |||
name, | |||
name | |||
) | |||
end | end | ||
end | end | ||
end | |||
if links == "" then | |||
return nil | |||
end | end | ||
return links | return links | ||
end | end | ||
return p | return p |