Modification de Module:Référence

Attention : vous n’êtes pas connecté(e). Votre adresse IP sera visible de tout le monde si vous faites des modifications. Si vous vous connectez ou créez un compte, vos modifications seront attribuées à votre propre nom d’utilisateur(rice) et vous aurez d’autres avantages.

La modification peut être annulée. Veuillez vérifier les différences ci-dessous pour voir si c’est bien ce que vous voulez faire, puis publier ces changements pour finaliser l’annulation de cette modification.

Version actuelle Votre texte
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


-- Adapte le style de la citation en fonction de la langue
--------------------------------------
function sentence_lang(sentence, lang)
-----    Fonctions communes    -----
if lang ~= "fr" then
--------------------------------------
return string.format("''%s''", sentence)
 
function formatSentence(sentence, lang)
if lang ~= 'fr' then
return "''" .. sentence .. "''"
else
else
return sentence
return sentence
Ligne 10 : Ligne 13 :
end
end


-- Retourne les arguments entrés par l'utilisateur
function getArgs(frame)
function get_args(frame)
local args = {}
local args = {}


Ligne 24 : Ligne 26 :
end
end


-- Génère une référence mise en forme automatiquement en
--------------------------------------
-- fonction du type sélectionné par l'utilisateur.
function p._dialogue(args)
local lang = args["langue"] or "fr"


local source = args["source"]
function p._buildOneReference(args)
if not source then
local ref = ''
error("Paramètre source absent")
 
local type = args['type']
if not type then
return 'Le paramètre type n\'est pas renseigné.'
end
end
local type = type:lower()
local game = args["jeu"]
 
if game then
local name = args['nom']
game = require("Module:Abréviation").name(game)
if name then
if not game or game == "" then
ref = '<ref name="' .. name .. '">'
error("Valeur inconnue du paramètre jeu")
end
else
else
error("Paramètre jeu absent")
ref = '<ref>'
end
end
local characters = {}
local lang = args['langue'] or 'fr'
local character
 
for i = 1, 6 do
if type == 'conversation' then
character = args['personnage' .. i]
local game = args['jeu']
if not character then
if game then
break
game = require( 'Module:Abréviation' ).name(game)
if game == '' then
game = 'jeu ?'
else
game = "''[[" .. game .. "]]''"
end
else
game = 'jeu ?'
end
end
table.insert(characters, character)
 
end
local character1 = args['personnage1'] or 'personnage1 ?'
local character2 = args['personnage2'] or 'personnage2 ?'
if #characters == 0 then
 
error("Paramètre personnage absent")
ref = ref .. 'Conversation entre ' .. character1 .. ' et ' .. character2 .. ' :'
end
ref = ref .. '<br/>'
local sentences = ""
local sentence
local character_index
-- Maximum de 10 phrases possibles
for i = 1, 10 do
-- phrasei.p indique l'index du personnage
-- phrasei.p indique le texte
character_index = args[string.format("phrase%d.p", i)]
sentence = args[string.format("phrase%d.t", i)]
if not sentence or not character_index then
for i = 1, 6 do
break
local sentence = args['phrase' .. i]
if sentence then
ref = ref .. '— ' .. formatSentence(sentence, lang) .. '<br/>'
else
break
end
end
end
character_index = tonumber(character_index)
if not character_index then
local file = args['fichier'] or 'fichier ?'
error(string.format("Paramètre phrase%d.p doit être un nombre", i))
 
ref = ref .. 'Extrait du fichier ' .. file .. ', ' .. game
elseif type == 'document' then
local quotation = args['citation']
if quotation then
ref = ref .. '«&nbsp;' .. formatSentence(quotation, lang) .. '&nbsp;»<br/>'
end
end
character = characters[character_index]
 
if not character then
local document = args['ouvrage'] or 'ouvrage ?'
error("Personnage non reconnu")
local author = args['auteur'] or 'auteur ?'
end
local date = args['date'] or 'date ?'
local publisher = args['éditeur'] or 'éditeur ?'
sentences = sentences .. tostring(mw.html.create("li")
local page = args['page'] or 'page ?'
:addClass("reference-dial-row")
:tag("span")
:addClass("reference-dial-character")
:wikitext(character .. " —&nbsp;")
:done()
:tag("span")
:addClass("reference-dial-text")
:wikitext(sentence_lang(sentence, lang))
:done()
:allDone()
)
end
if sentences == "" then
ref = ref .. author .. '. \'\'' .. document .. '\'\'. ' .. publisher .. ', ' .. date .. '. pp. ' .. page
error("Paramètre phrase absent")
end
end
 
sentences = '<ul class="reference-dial">' .. sentences .. "</ul>"
ref = ref .. '</ref>'
local header = string.format(
 
"Conversation extraite du fichier %s, ''[[%s]]''.",
return ref
source,
game
)
return header .. sentences
end
end


function p.dialogue(frame)
function p.buildOneReference(frame)
return p._dialogue(get_args(frame))
local args = getArgs(frame)
return p._buildOneReference(args)
end
end


return p
return p
Notez bien que toutes les contributions à Les Archives de Vault-Tec sont considérées comme publiées sous les termes de la creative Commons - CC BY-NC-SA 3.0 (voir Les Archives de Vault-Tec:Copyrights pour plus de détails). Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.
Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source placée dans le domaine public ou d’une ressource libre similaire. N’utilisez aucun travail sous droits d’auteur sans autorisation expresse !
Annuler Aide pour la modification (s’ouvre dans une nouvelle fenêtre)

Modèle utilisé par cette page :