Module:Biblio : Différence entre versions
(Préparation débugage (bis)) |
(Ajout fonction lienBrise pour le modèle:Lien brisé) |
||
(29 révisions intermédiaires par 6 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | + | -- Le module biblio centralise les différentes fonctions utiles pour les bibliographie et références. | |
− | local | + | local Biblio = { } |
− | + | require( 'Module:No globals' ) | |
− | + | local Outils = require( 'Module:Outils' ) | |
− | local function extractArgs ( frame ) | + | |
− | + | ||
− | + | 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 | ||
+ | |||
+ | -- 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]] 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 | 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>[[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]] inconnu)</small>' .. categorise{ 'ISSN nécessaire', true } | ||
+ | end | ||
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 | end | ||
− | + | Biblio.BNF = function ( frame ) | |
− | + | local References = require( 'Module:Biblio/Références' ) | |
− | + | return References.bnf( Outils.extractArgs( frame )[1] ) | |
− | |||
− | |||
− | |||
− | |||
end | 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 | 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 | end | ||
return Biblio | return Biblio |
Version actuelle datée du 27 avril 2017 à 17:18
La documentation pour ce module peut être créée à Module:Biblio/doc
-- Le module biblio centralise les différentes fonctions utiles pour les bibliographie et références. local Biblio = { } require( 'Module:No globals' ) 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 -- 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]] 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]] 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]] 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