« Module:Abréviation » : différence entre les versions

685 octets ajoutés ,  13 janvier 2023
aucun résumé des 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 = {}
local tools = require('Module:Outils')


------------------------------------------------------
------------------------------------------------------
------------ Référentiel des jeux Fallout ------------
--           Référentiel des abréviations          --
--- Merci de ne pas dupliquer ces données ailleurs ---
-- Merci de ne pas dupliquer ces données ailleurs --
-- Si un nouveau jeu sort (\o/), merci de l'ajouter --
-- Si un nouveau jeu sort (\o/), merci de l"ajouter --
------------------------------------------------------
------------------------------------------------------


local abr = {
local ABBR = {
     SFD            = 'Starfield',
     SF      = "Starfield",
     WIKI           = '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(frame)
function p.contains(args)
local arg = tools.extractArgs(frame)[1] or ''
return ABBR[(args[1] or ""):upper()] ~= nil
return abr[arg:upper()] ~= nil
end
end


-- Retourne le nom d'un jeu
-- Retourne le mot complet d"une abréviation
function p.name(frame)
function p.name(args)
local arg = tools.extractArgs(frame)[1] or ''
return ABBR[(args[1] or ""):upper()]
return abr[arg:upper()] or ''
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(frame)
-- Si on souhaite par exemple générer les catégories Lieu pour SF et WIKI,
local args = tools.extractArgs(frame)
-- alors la fonction générera la chaîne suivante.
--  `[[Catégorie:Lieu de Starfield]][[Catégorie:Lieu de Starfield Wiki]]`
local categories = ''
-- Il est possible de définir une clé de tri.
function p.categories(args)
local abbs = args[1] or ''
local abbrs = args[1]
local subject = args[2]
local subject = args[2] or ""
local sortkey = args[3]
local sortkey = args[3]
 
if #abbs > 0 then
-- On a au moins besoin des abréviations sinon on ne
abbs = mw.text.split(abbs, "%s*,%s*")
-- 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
 
if #abbs > 0 then
for i, abbr in ipairs(abbrs) do
local prefix = ''
local name = ABBR[abbr:upper()]
if subject then
 
prefix = subject .. ' de '
if name ~= nil then
end
category = string.format(
"[[Catégorie:%s%s%s]]",
if sortkey then
prefix,
sortkey = '|' .. sortkey
name,
else
sortkey
sortkey = ''
)
end
categories = categories .. category
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
end
end
 
if categories == '' then categories = nil end
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.links(frame)
-- Utilisée dans l'en-tête des infobox.
local args = tools.extractArgs(frame)
-- 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 abbs      = args[1] or ''
 
local link      = args['lien'] or args[2]
for i, abbr in ipairs(abbrs) do
local subject  = args['sujet'] or args[3]
local name = ABBR[abbr:upper()]
local separator = args['séparateur'] or ', '
if #abbs > 0 then
abbs = mw.text.split(abbs, "%s*,%s*")
end


if #abbs > 0 then
if name ~= nil then
local linkPrefix = ''
j = j + 1
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 j == 1 then
if i == 1 then
links = string.format(
if abb:upper() == 'NON' then
"[[%s%s|%s''%s'']]",
links = subject .. ' ' .. gameName
link_prefix,
else
name,
links = '[['..linkPrefix..gameName..'|'..subjectPrefix..'\'\''..gameName..'\'\']]'
subject_prefix,
end
name
else
)
links = links..separator..'[['..linkPrefix..gameName..'|\'\''..gameName..'\'\']]'
else
end
links = string.format(
"%s%s[[%s%s|''%s'']]",
links,
separator,
link_prefix,
name,
name
)
end
end
end
end
elseif link then
end
links = '[['..link..'|'..(subject or link)..']]'
 
elseif subject then
if links == "" then  
links = subject
return nil
end
end
if links == '' then links = nil end
return links
return links
end
end


return p
return p