Module:Biblio : Différence entre versions
(rechercheIsbn : correction catégorie) |
(ajout identifiantsBiblio, transfert de la fonction categorise depuis Module:Biblio/References) |
||
Ligne 51 : | Ligne 51 : | ||
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 | end | ||
Ligne 73 : | Ligne 83 : | ||
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 = { isbn = args[1], sansLabel = true, categ = { | + | local newArgs = { isbn = args[1], sansLabel = true, categ = {} } |
local isbn = References.isbn( newArgs ) or '' | local isbn = References.isbn( newArgs ) or '' | ||
− | local categ = | + | local categ = categorise{ 'Ouvrage avec ISBN invalide', newArgs.categ.isbnInvalid } |
return isbn .. categ | return isbn .. categ | ||
end | end | ||
Ligne 82 : | Ligne 92 : | ||
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 101 : | Ligne 108 : | ||
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 120 : | Ligne 124 : | ||
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], sansLabel = true, categ = { | + | local newArgs = { issn = args[1], sansLabel = true, categ = {} } |
local issn = References.issn( newArgs ) or '' | local issn = References.issn( newArgs ) or '' | ||
− | local categ = | + | local categ = categorise{ 'Page avec ISSN invalide', newArgs.categ.issnInvalid } |
return issn .. categ | return issn .. categ | ||
end | end | ||
Ligne 132 : | Ligne 136 : | ||
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{ 'Ouvrage 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 du 12 avril 2016 à 15:13
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 = { } 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.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{ 'Ouvrage 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.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{ 'Ouvrage 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