Module:Biblio

 Documentation[voir] [modifier] [historique] [purger]

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é}} ;
  • lienVideo(frame) – modèle {{Lien vidéo}} ;
  • 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
-- Le module biblio centralise les différentes fonctions utiles pour les bibliographie et références.

-- luacheck: globals mw, no max line length

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.lienVideo = function( frame )
	local args = Outils.extractArgs( frame )
	local Ouvrage = require( 'Module:Biblio/Lien vidéo' )
	return Ouvrage.lienVideo( 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 ) 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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.