« Module:Biblio/Commun » : différence entre les versions

Contenu supprimé Contenu ajouté
Od1n (discussion | contributions)
pointeur local n'étant plus utilisé depuis 96836750 (puis appel de Outils.extractArgs depuis 115647067)
Od1n (discussion | contributions)
extraction de Outils.texteLien, qui n'était utilisé que dans ce module (et aussi un fork dans Module:Linguistique)
Ligne 11 :
 
local abr = Outils.abr -- fonction abréviation discréte
 
--[=[
Trouve le premier lien interwiki '[[lien|texte]]' de str et retourne : texte, lien
Si le lien est '[[texte]]', retourne : texte, texte.
Si str ne contient pas de lien interwiki, retourne : str (et nil)
Les fichiers et images ne sont pas considérés comme des liens.
Si str n'est pas une chaine, retourne : nil
]=]
local function texteLien( str )
if type( str ) == 'string' then
for lien, texte in string.gmatch( str, '%[%[ *([^%[%]|]*)|? *([^%[%]]*)%]%]' ) do
texte = ( texte ~= '' and texte ) or lien or str
if not lien then
return str
end
local testlien = string.lower( lien )
local fichier = string.match( testlien, '^fichier:' )
or string.match( testlien, '^image:' )
or string.match( testlien, '^file:' )
if not fichier then
return texte, lien
end
end
return str
end
end
 
 
Ligne 103 ⟶ 129 :
-- tentative de séparation de l'auteur en prénom nom.
-- Enregistre le résultat dans args pour les COinS.
auteur_i = Outils.texteLien( auteur_i )
if auteur_i == '' then
break
Ligne 521 ⟶ 547 :
 
-- donnée sur l'éditeur
insertList( 'rft.place', Outils.texteLien( validArg( 'lieu', 'location' ) ), nil )
insertList( 'rft.pub', Outils.texteLien( validArg( 'éditeur', 'édition' ) ), nil )
insertList( 'rft.edition', args["numéro d'édition"] )
end
Ligne 528 ⟶ 554 :
 
-- Premier auteur, séparé en noms et prénoms
local nom = Outils.texteLien( validArg( 'nom1', 'nom', 'last1', 'last' ) )
if nom then
insertList( 'rft.aulast', nom )
Ligne 534 ⟶ 560 :
insertList( 'rtf.ausuffix ', validArg( 'postnom1', 'postnom' ) )
else
local auteur = Outils.texteLien( validArg( 'auteur', 'auteur1' ) )
if auteur then
insertList( 'rft.au', auteur )
Ligne 542 ⟶ 568 :
-- les autres auteurs, la norme ne prévoit pas de séparation
for i = 2, 20 do
local nom_i = Outils.texteLien( validArg( 'nom' .. i ) )
if nom_i then
local prenom_i = validArg( 'prénom' .. i )
Ligne 556 ⟶ 582 :
end
else
local auteur_i = Outils.texteLien( validArg( 'auteur' .. i ) )
if auteur_i then
insertList( 'rft.au', auteur_i )