Module:Biblio/Bac à sable
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}} ;lienBrise(frame)
– modèle {{Lien brisé}} ;dictionnaire(frame)
– appelle le modèle chapitre si un paramètretitre chapitre
,article
ounotice
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 :
Module:Outils
Module:Biblio/Références
Module:Biblio/Article
– pour la fonction articleModule:Biblio/Lien web
– pour les fonctions lienWeb et lienBriseModule:Biblio/Ouvrage
– pour la fonction ouvrage, chapitre et dictionnaire
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
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (modifier).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- Le module biblio centralise les différentes fonctions utiles pour les bibliographie et références.local Biblio = { }require('strict')local Outils = require( 'Module:Outils' )Biblio.ouvrage = function ( frame )local args = Outils.extractArgs( frame )local Ouvrage = require( 'Module:Biblio/Ouvrage/Bac à sable' )return Ouvrage.ouvrage( args ) endBiblio.chapitre = function ( frame )local args = Outils.extractArgs( frame )local Ouvrage = require( 'Module:Biblio/Ouvrage/Bac à sable' )return Ouvrage.chapitre( args ) endBiblio.article = function ( frame )local args = Outils.extractArgs( frame )local Ouvrage = require( 'Module:Biblio/Article/Bac à sable' )return Ouvrage.article( args ) endBiblio.lienWeb = function( frame )local args = Outils.extractArgs( frame )local Ouvrage = require( 'Module:Biblio/Lien web/Bac à sable' )return Ouvrage.lienWeb( args ) endBiblio.lienBrise = function( frame )local args = Outils.extractArgs( frame )local Ouvrage = require( 'Module:Biblio/Lien web/Bac à sable' )return Ouvrage.lienBrise( args )endBiblio.dictionnaire = function( frame )local args = Outils.extractArgs( frame )local article = Outils.validTextArg( args, 'notice', 'article', 'titre chapitre' )local Ouvrage = require( 'Module:Biblio/Ouvrage/Bac à sable' )if article thenargs['titre chapitre'] = articlereturn Ouvrage.chapitre( args ) elseargs.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 )endend-- catégorise une page en fonction du namespacelocal 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 ]thenreturn '[[Category:' .. category .. ']]'endreturn ''endBiblio.ISBN = function ( frame )local args = Outils.extractArgs( frame )if Outils.trim( args[1] ) thenlocal newArgs = { isbn = args[1] }local i = 2while args[i] donewArgs[ 'isbn' .. i ] = args[i]i = i + 1endreturn Biblio.identifiantsBiblio( newArgs )else return '<small>([[International Standard Book Number|ISBN]] inconnu)</small>' .. categorise{ 'ISBN nécessaire', true }endendBiblio.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 .. categendBiblio.EAN = function ( frame )local args = Outils.extractArgs( frame )if Outils.trim( args[1] ) thenlocal newArgs = { ean = args[1], categ = {} }local i = 2while args[i] donewArgs[ 'ean' .. i ] = args[i]i = i + 1endreturn Biblio.identifiantsBiblio( newArgs )else return '<small>([[EAN 13|EAN]] inconnu)</small>[[Catégorie:EAN nécessaire]]'endendBiblio.ISSN = function ( frame )local args = Outils.extractArgs( frame )if Outils.trim( args[1] ) thenlocal newArgs = { issn = args[1], categ = {} }local i = 2while args[i] donewArgs[ 'issn' .. i ] = args[i]i = i + 1endreturn Biblio.identifiantsBiblio( newArgs )else return '<small>([[International Standard Serial Number|ISSN]] inconnu)</small>' .. categorise{ 'ISSN nécessaire', true }endendBiblio.rechercheIssn = function( frame )local args = Outils.extractArgs( frame )local References = require( 'Module:Biblio/Références/Bac à sable' )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 .. categendBiblio.BNF = function ( frame )local References = require( 'Module:Biblio/Références/Bac à sable' )return References.bnf( Outils.extractArgs( frame )[1] )endBiblio.enLigne = function ( frame )local args = Outils.extractArgs( frame )local References = require( 'Module:Biblio/Références/Bac à sable' )return '<small>[' .. References.enLigne( args ) .. ']</small>'endBiblio.identifiantsBiblio = function( frame )local args = Outils.extractArgs( frame )args.categ = {}local References = require( 'Module:Biblio/Références/Bac à sable' )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 }endreturn Biblio