Module:Biblio : Différence entre versions
(Ajout fonction EAN (crée par NicoV dans le Bac à sable)) |
(Ajout fonction lienBrise pour le modèle:Lien brisé) |
||
(8 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 3 : | Ligne 3 : | ||
local Biblio = { } | local Biblio = { } | ||
− | + | require( 'Module:No globals' ) | |
local Outils = require( 'Module:Outils' ) | local Outils = require( 'Module:Outils' ) | ||
Ligne 32 : | Ligne 32 : | ||
local Ouvrage = require( 'Module:Biblio/Lien web' ) | local Ouvrage = require( 'Module:Biblio/Lien web' ) | ||
return Ouvrage.lienWeb( args ) | 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 | end | ||
Ligne 51 : | Ligne 57 : | ||
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 ) | Biblio.ISBN = function ( frame ) | ||
local args = Outils.extractArgs( frame ) | local args = Outils.extractArgs( frame ) | ||
− | + | if Outils.trim( args[1] ) then | |
− | if Outils.trim(args[1]) then | + | local newArgs = { isbn = args[1] } |
− | local newArgs = { isbn = args[1] | ||
local i = 2 | local i = 2 | ||
while args[i] do | while args[i] do | ||
− | newArgs['isbn' .. i] = args[i] | + | newArgs[ 'isbn' .. i ] = args[i] |
i = i + 1 | i = i + 1 | ||
end | end | ||
− | + | return Biblio.identifiantsBiblio( newArgs ) | |
− | |||
− | |||
else | else | ||
− | return '<small>([[International Standard Book Number|ISBN]] inconnu)</small>' . | + | return '<small>([[International Standard Book Number|ISBN]] inconnu)</small>' .. categorise{ 'ISBN nécessaire', true } |
end | 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 | ||
Ligne 73 : | Ligne 98 : | ||
Biblio.EAN = function ( frame ) | Biblio.EAN = function ( frame ) | ||
local args = Outils.extractArgs( frame ) | local args = Outils.extractArgs( frame ) | ||
− | + | if Outils.trim( args[1] ) then | |
− | if Outils.trim(args[1]) then | + | local newArgs = { ean = args[1], categ = {} } |
− | local newArgs = { ean = args[1], categ = { | ||
local i = 2 | local i = 2 | ||
while args[i] do | while args[i] do | ||
− | newArgs['ean' .. i] = args[i] | + | newArgs[ 'ean' .. i ] = args[i] |
i = i + 1 | i = i + 1 | ||
end | end | ||
− | + | return Biblio.identifiantsBiblio( newArgs ) | |
− | |||
− | |||
else | else | ||
− | return '<small>([[EAN 13|EAN]] inconnu)</small> | + | return '<small>([[EAN 13|EAN]] inconnu)</small>[[Catégorie:EAN nécessaire]]' |
end | end | ||
end | end | ||
Ligne 92 : | Ligne 114 : | ||
Biblio.ISSN = function ( frame ) | Biblio.ISSN = function ( frame ) | ||
local args = Outils.extractArgs( frame ) | local args = Outils.extractArgs( frame ) | ||
− | + | if Outils.trim( args[1] ) then | |
− | if Outils.trim(args[1]) then | + | local newArgs = { issn = args[1], categ = {} } |
− | local newArgs = { issn = args[1], categ = { | ||
local i = 2 | local i = 2 | ||
while args[i] do | while args[i] do | ||
− | newArgs['issn' .. i] = args[i] | + | newArgs[ 'issn' .. i ] = args[i] |
i = i + 1 | i = i + 1 | ||
end | end | ||
− | + | return Biblio.identifiantsBiblio( newArgs ) | |
− | |||
− | |||
else | else | ||
− | return '<small>(inconnu)</small>' . | + | return '<small>([[International Standard Serial Number|ISSN]] inconnu)</small>' .. categorise{ 'ISSN nécessaire', true } |
end | end | ||
end | end | ||
Ligne 111 : | Ligne 130 : | ||
local args = Outils.extractArgs( frame ) | local args = Outils.extractArgs( frame ) | ||
local References = require( 'Module:Biblio/Références' ) | local References = require( 'Module:Biblio/Références' ) | ||
− | local newArgs = { issn = args[1], categ = { | + | local newArgs = { issn = args[1], sansLabel = true, categ = {} } |
local issn = References.issn( newArgs ) or '' | local issn = References.issn( newArgs ) or '' | ||
− | + | local categ = categorise{ 'Page avec ISSN invalide', newArgs.categ.issnInvalid } | |
− | local categ = | ||
return issn .. categ | return issn .. categ | ||
+ | end | ||
+ | |||
+ | Biblio.BNF = function ( frame ) | ||
+ | local References = require( 'Module:Biblio/Références' ) | ||
+ | return References.bnf( Outils.extractArgs( frame )[1] ) | ||
end | end | ||
Ligne 124 : | Ligne 147 : | ||
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 | ||
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