Ce module sert de base aux fonctions
bibliographiques
. Lorsqu'elles sont appelees directement par un modele (via #invoke), les parametres passes a ce modele sont automatiquement transmis au module, sauf si le modele specifie une autre valeur pour ce parametre.
Utilisation
Fonctions exportables :
ouvrage(frame)
? modele
{{Ouvrage}}
;
chapitre(frame)
? modele
{{Chapitre}}
;
article(frame)
? modele
{{Article}}
;
lienWeb(frame)
? modele
{{Lien web}}
;
lienBrise(frame)
? modele
{{Lien brise}}
;
dictionnaire(frame)
? appelle le modele chapitre si un parametre
titre chapitre
,
article
ou
notice
est non vide, sinon appelle le modele ouvrage ;
ISBN(frame)
? affiche en petit et entre parentheses ISBN suivi d'autant de codes que de parametres non nommes, avec lien a la page ad hoc ;
ISSN(frame)
? affiche en petit et entre parentheses ISSN suivi d'autant de codes que de parametres non nommes, avec lien a la page ad hoc ;
enLigne()
? similaire au modele
{{Lire en ligne}}
(le texte par defaut est ≪ en ligne ≫).
Modules externes et autres elements dont ce module a besoin pour fonctionner :
Exemples
Utilisation de la fonction
ouvrage
dans un modele pour afficher une reference :
{{#invoke:Biblio |ouvrage |auteur=Martine Michu |titre=Mes vacances a la mer}}
- Martine Michu,
Mes vacances a la mer
Une page utilisant ce modele avec le parametre ≪
passage = 28
≫ affichera :
- Martine Michu,
Mes vacances a la mer
,
p.
28
-- Le module biblio centralise les differentes fonctions utiles pour les bibliographie et references.
local
Biblio
=
{
}
require
(
'strict'
)
local
Outils
=
require
(
'Module:Outils'
)
Biblio
.
ouvrage
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
local
Ouvrage
=
require
(
'Module:Biblio/Ouvrage'
)
return
Ouvrage
.
ouvrage
(
args
)
end
Biblio
.
chapitre
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
local
Ouvrage
=
require
(
'Module:Biblio/Ouvrage'
)
return
Ouvrage
.
chapitre
(
args
)
end
Biblio
.
article
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
local
Ouvrage
=
require
(
'Module:Biblio/Article'
)
return
Ouvrage
.
article
(
args
)
end
Biblio
.
lienWeb
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
local
Ouvrage
=
require
(
'Module:Biblio/Lien web'
)
return
Ouvrage
.
lienWeb
(
args
)
end
Biblio
.
lienBrise
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
local
Ouvrage
=
require
(
'Module:Biblio/Lien web'
)
return
Ouvrage
.
lienBrise
(
args
)
end
Biblio
.
dictionnaire
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
local
article
=
Outils
.
validTextArg
(
args
,
'notice'
,
'article'
,
'titre chapitre'
)
local
Ouvrage
=
require
(
'Module:Biblio/Ouvrage'
)
if
article
then
args
[
'titre chapitre'
]
=
article
return
Ouvrage
.
chapitre
(
args
)
else
args
.
titre
=
args
[
'titre ouvrage'
]
args
[
'sous-titre'
]
=
args
[
'sous-titre ouvrage'
]
args
.
auteur1
=
args
[
'auteur ouvrage'
]
args
.
auteurs
=
args
[
'auteurs ouvrage'
]
return
Ouvrage
.
ouvrage
(
args
)
end
end
-- categorise une page en fonction du namespace
local
function
categorise
(
args
)
local
namespaceCategorisation
=
{
[
0
]
=
true
,
[
4
]
=
true
,
[
10
]
=
true
,
[
12
]
=
true
,
[
14
]
=
true
,
[
100
]
=
true
,
[
104
]
=
true
}
local
category
=
args
[
1
]
local
flag
=
args
[
2
]
if
type
(
category
)
==
'string'
and
flag
and
namespaceCategorisation
[
mw
.
title
.
getCurrentTitle
().
namespace
]
then
return
'[[Category:'
..
category
..
']]'
end
return
''
end
Biblio
.
ISBN
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
if
Outils
.
trim
(
args
[
1
]
)
then
local
newArgs
=
{
isbn
=
args
[
1
]
}
local
i
=
2
while
args
[
i
]
do
newArgs
[
'isbn'
..
i
]
=
args
[
i
]
i
=
i
+
1
end
return
Biblio
.
identifiantsBiblio
(
newArgs
)
else
return
'<small>([[International Standard Book Number|ISBN]] inconnu)</small>'
..
categorise
{
'ISBN necessaire'
,
true
}
end
end
Biblio
.
rechercheIsbn
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
local
References
=
require
(
'Module:Biblio/References'
)
local
newArgs
=
{
isbn
=
args
[
1
],
sansLabel
=
true
,
categ
=
{}
}
local
isbn
=
References
.
isbn
(
newArgs
)
or
''
local
categ
=
categorise
{
'Page avec ISBN invalide'
,
newArgs
.
categ
.
isbnInvalid
}
return
isbn
..
categ
end
Biblio
.
EAN
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
if
Outils
.
trim
(
args
[
1
]
)
then
local
newArgs
=
{
ean
=
args
[
1
],
categ
=
{}
}
local
i
=
2
while
args
[
i
]
do
newArgs
[
'ean'
..
i
]
=
args
[
i
]
i
=
i
+
1
end
return
Biblio
.
identifiantsBiblio
(
newArgs
)
else
return
'<small>([[EAN 13|EAN]] inconnu)</small>[[Categorie:EAN necessaire]]'
end
end
Biblio
.
ISSN
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
if
Outils
.
trim
(
args
[
1
]
)
then
local
newArgs
=
{
issn
=
args
[
1
],
categ
=
{}
}
local
i
=
2
while
args
[
i
]
do
newArgs
[
'issn'
..
i
]
=
args
[
i
]
i
=
i
+
1
end
return
Biblio
.
identifiantsBiblio
(
newArgs
)
else
return
'<small>([[International Standard Serial Number|ISSN]] inconnu)</small>'
..
categorise
{
'ISSN necessaire'
,
true
}
end
end
Biblio
.
rechercheIssn
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
local
References
=
require
(
'Module:Biblio/References'
)
local
newArgs
=
{
issn
=
args
[
1
],
sansLabel
=
true
,
categ
=
{}
}
local
issn
=
References
.
issn
(
newArgs
)
or
''
local
categ
=
categorise
{
'Page avec ISSN invalide'
,
newArgs
.
categ
.
issnInvalid
}
return
issn
..
categ
end
Biblio
.
BNF
=
function
(
frame
)
local
References
=
require
(
'Module:Biblio/References'
)
return
References
.
bnf
(
Outils
.
extractArgs
(
frame
)[
1
]
)
end
Biblio
.
enLigne
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
local
References
=
require
(
'Module:Biblio/References'
)
return
'<small>['
..
References
.
enLigne
(
args
)
..
']</small>'
end
Biblio
.
identifiantsBiblio
=
function
(
frame
)
local
args
=
Outils
.
extractArgs
(
frame
)
args
.
categ
=
{}
local
References
=
require
(
'Module:Biblio/References'
)
return
(
References
.
affichageLiensExternes
(
args
,
nil
,
true
,
true
)
or
''
)
..
categorise
{
'Page avec ISBN invalide'
,
args
.
categ
.
isbnInvalid
}
..
categorise
{
'Page avec ISSN invalide'
,
args
.
categ
.
issnInvalid
}
..
categorise
{
'Page avec EAN invalide'
,
args
.
categ
.
eanInvalid
}
end
return
Biblio