Différences entre les pages « Module:Biblio » et « Module:Biblio/doc »

De Les Mots de l'agronomie
(Différence entre les pages)
imported>Jacques Ducloy
m (1 révision importée)
 
imported>Jacques Ducloy
m (1 révision importée)
 
Ligne 1 : Ligne 1 :
-- Le module biblio centralise les différentes fonctions utiles pour les bibliographie et références.
+
<includeonly>{{protection}}</includeonly>
  
local Biblio = {  }
+
Ce module sert de base aux fonctions [[Wikipédia:Conventions bibliographiques|bibliographiques]]. Lorsqu'elles sont appelées directement par un modèle (via #invoke), les paramètres passés à ce modèle sont automatiquement transmis au module, sauf si le modèle spécifie une autre valeur pour ce paramètre.
  
require( 'Module:No globals' )
+
== Utilisation ==
local Outils = require( 'Module:Outils' )
 
  
 +
Fonctions exportables :
 +
* <code>ouvrage(frame)</code> – modèle {{m|Ouvrage}} ;
 +
* <code>chapitre(frame)</code> – modèle {{m|Chapitre}} ;
 +
* <code>article(frame)</code> – modèle {{m|Article}} ;
 +
* <code>lienWeb(frame)</code> – modèle {{m|Lien web}} ;
 +
* <code>dictionnaire(frame)</code> – appelle le modèle chapitre si un paramètre <code>titre chapitre</code>, <code>article</code> ou <code>notice</code> est non vide, sinon appelle le modèle ouvrage ;
 +
* <code>ISBN(frame)</code> – affiche en petit et entre parenthèses ISBN suivi d'autant de codes que de paramètres non nommés, avec lien à la page ad hoc ;
 +
* <code>ISSN(frame)</code> – affiche en petit et entre parenthèses ISSN suivi d'autant de codes que de paramètres non nommés, avec lien à la page ad hoc ;
 +
* <code>enLigne()</code> – similaire au modèle {{m|Lire en ligne}} (le texte par défaut est « en ligne »).
  
Biblio.ouvrage = function ( frame )
+
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
local args = Outils.extractArgs( frame )
+
* <code>[[Module:Outils]]</code> – utilise abondamment Outils.ValidTextArg, mais aussi Outils.erreur et Outils.nobr
local Ouvrage = require( 'Module:Biblio/Ouvrage' )
+
* <code>[[Module:TableBuilder]]</code>
return Ouvrage.ouvrage( args )
+
* <code>[[Module:Biblio/Commun]]</code>
end
+
* <code>[[Module:Biblio/Références]]</code>
 +
* <code>[[Module:Langue]]</code> – chargé si le paramètre langue est renseigné
 +
* <code>[[Module:Biblio/Article]]</code> – pour la fonction article
 +
* <code>[[Module:Biblio/Lien web]]</code> – pour la fonction lienWeb
 +
* <code>[[Module:Biblio/Ouvrage]]</code> – pour la fonction ouvrage, chapitre et dictionnaire
 +
* <code>[[Module:No globals]]</code>
  
 +
== Exemples ==
  
Biblio.chapitre = function ( frame )
+
Utilisation de la fonction <code>ouvrage</code> dans un modèle pour afficher une référence :
local args = Outils.extractArgs( frame )
+
* <code><nowiki>{{#invoke:Biblio |ouvrage |auteur=Martine Michu |titre=Mes vacances à la mer}}</nowiki></code>
local Ouvrage = require( 'Module:Biblio/Ouvrage' )
+
* {{#invoke:Biblio |ouvrage |auteur=Martine Michu |titre=Mes vacances à la mer}}
return Ouvrage.chapitre( args )
 
end
 
  
 +
Une page utilisant ce modèle avec le paramètre « <code>passage = 28</code> » affichera :
 +
* {{#invoke:Biblio |ouvrage |auteur=Martine Michu |titre=Mes vacances à la mer |passage=28}}
  
Biblio.article = function ( frame )
+
<includeonly>
local args = Outils.extractArgs( frame )
+
{{Projet Scribunto}}
local Ouvrage = require( 'Module:Biblio/Article' )
+
</includeonly>
return Ouvrage.article( args )
+
<noinclude>
end
+
[[Catégorie:Documentation de module|{{BASEPAGENAME}}]]
 
+
</noinclude>
 
 
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
 
 
 
-- catégorise 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]]&nbsp;inconnu)</small>' .. categorise{ 'ISBN nécessaire', true }
 
end
 
end
 
 
 
Biblio.rechercheIsbn = function( frame )
 
local args = Outils.extractArgs( frame )
 
local References = require( 'Module:Biblio/Références' )
 
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]]&nbsp;inconnu)</small>[[Catégorie:EAN nécessaire]]'
 
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]]&nbsp;inconnu)</small>' .. categorise{ 'ISSN nécessaire', true }
 
end
 
end
 
 
 
Biblio.rechercheIssn = function( frame )
 
local args = Outils.extractArgs( frame )
 
local References = require( 'Module:Biblio/Références' )
 
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/Références' )
 
return References.bnf( Outils.extractArgs( frame )[1] )
 
end
 
 
 
Biblio.enLigne = function ( frame )
 
local args = Outils.extractArgs( frame )
 
local References = require( 'Module:Biblio/Références' )
 
return '<small>[' .. References.enLigne( args )  .. ']</small>'
 
end
 
 
 
Biblio.identifiantsBiblio = function( frame )
 
local args = Outils.extractArgs( frame )
 
args.categ = {}
 
local References = require( 'Module:Biblio/Références' )
 
return References.affichageLiensExternes( args, nil, true, true )
 
.. 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
 

Version actuelle datée du 28 décembre 2020 à 11:52


Ce module sert de base aux fonctions bibliographiques. Lorsqu'elles sont appelées directement par un modèle (via #invoke), les paramètres passés à ce modèle sont automatiquement transmis au module, sauf si le modèle spécifie une autre valeur pour ce paramètre.

Utilisation

Fonctions exportables :

  • ouvrage(frame) – modèle {{Ouvrage}} ;
  • chapitre(frame) – modèle {{Chapitre}} ;
  • article(frame) – modèle {{Article}} ;
  • lienWeb(frame) – modèle {{Lien web}} ;
  • dictionnaire(frame) – appelle le modèle chapitre si un paramètre titre chapitre, article ou notice est non vide, sinon appelle le modèle ouvrage ;
  • ISBN(frame) – affiche en petit et entre parenthèses ISBN suivi d'autant de codes que de paramètres non nommés, avec lien à la page ad hoc ;
  • ISSN(frame) – affiche en petit et entre parenthèses ISSN suivi d'autant de codes que de paramètres non nommés, avec lien à la page ad hoc ;
  • enLigne() – similaire au modèle {{Lire en ligne}} (le texte par défaut est « en ligne »).

Modules externes et autres éléments dont ce module a besoin pour fonctionner :

Exemples

Utilisation de la fonction ouvrage dans un modèle pour afficher une référence :

  • {{#invoke:Biblio |ouvrage |auteur=Martine Michu |titre=Mes vacances à la mer}}
  • Martine Michu, Mes vacances à la mer

Une page utilisant ce modèle avec le paramètre « passage = 28 » affichera :

  • Martine Michu, Mes vacances à la mer, p. 28