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

De Starfield Wiki
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

Dernière version du 13 janvier 2023 à 21:59

Documentation[voir] [modifier] [purger]

Ce module prend en charge les abréviations et leurs manipulations.

Ajouter une abréviation[modifier le wikicode]

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[modifier le wikicode]

  • 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 = {}

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

local ABBR = {
    SF      = "Starfield",
    WIKI    = "Starfield Wiki",
}

------------------------------------------------------

-- Vérifie l'existence d'une abréviation
function p.contains(args)
	return ABBR[(args[1] or ""):upper()] ~= nil
end

-- Retourne le mot complet d"une abréviation
function p.name(args)
	return ABBR[(args[1] or ""):upper()]
end

-- Génère une liste de catégories à partir de plusieurs abréviations.
-- 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 abbrs = args[1]
	local subject = args[2] or ""
	local sortkey = args[3]

	-- 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

	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

	if categories == "" then
		return nil
	end

	return categories
end

-- Génère une liste de lien à partir de plusieurs abréviations.
-- Utilisée dans l'en-tête des infobox.
-- 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 j = 0

	for i, abbr in ipairs(abbrs) do
		local name = ABBR[abbr:upper()]

		if name ~= nil then
			j = j + 1
			
			if j == 1 then
				links = string.format(
					"[[%s%s|%s''%s'']]",
					link_prefix,
					name,
					subject_prefix,
					name
				)
			else
				links = string.format(
					"%s%s[[%s%s|''%s'']]",
					links,
					separator,
					link_prefix,
					name,
					name
				)
			end
		end
	end

	if links == "" then 
		return nil
	end
	
	return links
end

return p