Module:Biblio/Références
Utilisation
Les fonctions de ce module sont prévues pour être utilisées depuis un autre module. Elles ne fonctionnent pas si elles sont directement appelées par #invoke.
Fonctions exportables :
isbn(args)
– retourne un lien vers ISBN suivi de la liste des ISBN contenu dans les paramètresisbn
,isbn erroné
,isbn2
,isbn3
... avec lien vers spécial:Ouvrages de référence ; affiche aussi un message d'erreur si ce n'est pas un ISBN ou EAN 13 valide (sauf paramètreisbn erroné
) ;issn(args)
– retourne un lien vers ISSN suivi de la liste des paramètresissn
,issn2
... avec un lien vers le portail ISSN ;enLigne(args)
– retourne un lien externe (paramètreurl
,lien
oudoi
) sous le libellé « lire en ligne » (personnalisable avectexte
), éventuellement précédé delangue
et suivi par une date (date
ouconsulté le
) ;wikisource
– retourne un lien interne vers la page wikisource correspondant, avec le texte « lire sur wikisource » ;indicationDeFormat(format)
– retourneformat
entre crochet, avec si possible une abréviation.indicationIconeAcces(paywall)
– retourne une icône indiquant si le contenu est soumis à une restriction d'accès.
Les fonctions suivantes retournent un lien interne pour une base de données suivi du code en paramètre avec un lien externe vers la page correspondante dans cette base.
oclc(code OCLC)
– Online Computer Library Center,bnf(code BnF)
– Bibliothèque nationale de France,lccn(code LCCN)
– Numéro de contrôle de la Bibliothèque du Congrès,dnb(code DNB)
– Bibliothèque nationale allemande,jstor(code JSTOR)
– JSTOR,pmid(code PMID)
– PubMed,pmcid(code PCMID)
– PubMed Central,doi(code DOI)
– Digital Object Identifier,bibcode(code BibCode)
– Bibcode,mathreviews(code MR)
– Mathematical Reviews,arxiv(code arXiv)
– arXiv,hdl(code HDL)
- Handle System,libris(code LIBRIS)
- LIBRIS,s2cid(code S2CID)
- Semantic Scholar,citeseerx(code CiteSeerx)
- CiteSeerX,jfm(code zbMATH)
- zbMATH.
Autres fonctions :
databaseExterne()
– facilite le lien vers les bases de données externe
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
Module:Outils
– utilise les fonctions validTextArg, trim et notEmpty
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.
-- Les fonctions de ce module sont destinées à être utilisée par un autre module.
-- Leur paramètre d'entrée est une table simple (args), voir une chaine (oclc, bnf...)
local References = { }
local Outils = require( 'Module:Outils' )
local validTextArg = Outils.validTextArg
-- voir Modèle:ISBN
-- renvoie une liste de chaine formant le résultat du modèle une fois concaténé
function References.isbn( args, validArg )
local validArg = validArg or function ( ... ) return validTextArg( args, ... ) end
local liste = { }
local i = 1
local isbn = validArg( 'isbn', 'ISBN', 'isbn1', 'ISBN1' )
local texteIsbn = 'ISBN '
while isbn do
local lien = '[[Spécial:Ouvrages de référence/' .. isbn
.. '|<span class="nowrap">' .. texteIsbn .. isbn .. '</span>]]'
table.insert( liste, lien )
i = i + 1
isbn = validArg( 'isbn' .. i, 'ISBN' .. i )
texteIsbn = isbn
end
return mw.text.listToText( liste )
end
-- voir Modèle:ISSN
-- renvoie une liste de chaine formant le résultat du modèle une fois concaténé
function References.issn( args, validArg )
local validArg = validArg or function ( ... ) return validTextArg( args, ... ) end
local liste = { }
local i = 1
local issn = validArg( 'issn', 'ISSN', 'issn1', 'ISSN1' )
if issn then
while issn do
local lien = '<span class="plainlinks noarchive">[http://worldcat.org/issn/'
.. mw.uri.encode( issn ) .. '&lang=fr ' .. issn.. ']</span>'
table.insert( liste, lien )
i = i + 1
issn = validArg( 'issn' .. i, 'ISSN' .. i )
end
return '[[International Standard Serial Number|ISSN]] ' .. mw.text.listToText( liste )
end
end
local function databaseExterne( num, interne, externe, complement )
if tonumber( num ) then
local adresse =
interne
.. ' <span class="plainlinks noarchive">[http://'
.. externe
.. mw.uri.encode( num )
.. ( complement or ' ' )
.. num
.. ']</span>'
return adresse
end
end
function References.oclc( oclc )
return databaseExterne( oclc, '[[Online Computer Library Center|OCLC]]', 'worldcat.org/oclc/', '&lang=fr ' )
end
function References.bnf( bnf )
return databaseExterne( bnf, 'notice [[Bibliothèque nationale de France|BnF]] n<sup>o</sup>',
'catalogue.bnf.fr/ark:/12148/cb', '/PUBLIC FRBNF' )
end
function References.lccn( lccn )
return databaseExterne( lccn, '[[Numéro de contrôle de la Bibliothèque du Congrès|LCCN]]', 'lccn.loc.gov/' )
end
function References.dnb( dnb )
return databaseExterne( dnb, '[[Bibliothèque nationale allemande|DNB]]', 'd-nb.info/' )
end
function References.jstor( jstor )
return databaseExterne( jstor, '[[JSTOR]]', 'jstor.org/stable/' )
end
function References.pmid( pmid )
return databaseExterne( pmid, '[[PubMed|PMID]]', 'www.ncbi.nlm.nih.gov/pubmed/' )
end
function References.pmcid( pmcid )
return databaseExterne( pmcid, '[[PubMed Central|PMCID]]', 'www.ncbi.nlm.nih.gov/pmc/articles/' )
end
function References.doi( doi )
return databaseExterne( doi, '[[Digital Object Identifier|DOI]]', 'dx.doi.org/' )
end
-- enLigne est destiné à remplacer "lire en ligne", "écouter en ligne", "présentation en ligne"
function References.enLigne( args )
local validArg = validArg or function ( ... ) return validTextArg( args, ... ) end
local lang, esp = '', ''
if args.langue then
local Langue = require( 'Module:Langue' )
lang = Langue.indicationMultilingue{ args.langue, args.langue2, args.langue3 }
esp = ' '
end
local url = validArg( 'lien', 'url' )
if url == nil then
if validArg( 'doi' ) then
url = 'http://dx.doi.org/' .. mw.uri.encode( args.doi )
else
return
end
end
local texte = validArg( 'texte' ) or 'en ligne'
local date = validArg( 'date', 'consulté le' )
if date then
return lang .. esp .. '[' .. url .. ' ' .. texte .. '] (consultée le' .. date .. ')'
else
return lang .. esp .. '[' .. url .. ' ' .. texte .. ']'
end
end
function References.indicationDeFormat( format )
if not Outils.trim( format ) then
return
end
local listeFormat = {
audio = { "audio", "Fichiers audio au format mp3, ogg..." },
bat = { "bat", "Script de traitement par lot (batch)" },
djvu = { "DjVu", "Document au format DjVu" },
doc = { "doc", "Document Microsoft Word" },
epub = { "EPUB", "Document au format Epub" },
flash = { "flash", "Animation vectorielle au format Macromedia Flash" },
hlp = { "hlp", "Fichier HeLP (aide) datant de Microsoft Windows 3.1" },
html = { "html", "Fichier au format Hypertext Markup Language (HTML)" },
image = { "image", "Image au format JPEG, PNG, GIF..." },
java = { "java", "Applet Java" },
mov = { "mov", "Vidéo au format Apple QuickTime" },
mp3 = { "MP3", "Son au format MP3 (MPEG-1/2 Audio Layer 3)" },
odt = { "odt", "Document au format OpenDocument" },
ogg = { "ogg", "Fichier au format conteneur Ogg" },
pdf = { "PDF", "Document au format Portable Document Format (PDF) d'Adobe" },
php = { "php", "Script PHP" },
pl = { "pl", "Script Practical Extraction and Report Language (Perl)" },
ppt = { "ppt", "Présentation Microsoft Powerpoint" },
ps = { "ps", "Fichier de description vectorielle au format PostScript" },
radio = { "radio", "Radio au format mpg, avi..." },
rm = { "rm", "Vidéo au format RealMedia, RealAudio..." },
rtf = { "RTF", "Document texte au format Rich Text Format (RTF)" },
svg = { "SVG", "Image vectorielle au format Scalable Vector Graphics (SVG)" },
sxi = { "sxi", "Présentation OpenOffice.org Impress" },
sxw = { "sxw", "Document OpenOffice.org Writer" },
tex = { "TeX", "Document TeX" },
txt = { "txt", "Fichier au format texte brut" },
video = { "vidéo", "Vidéo au format mpg, avi..." },
xls = { "xls", "Classeur Microsoft Excel" },
xml = { "XML", "Document au format Extensible Markup Language (XML)" },
zip = { "zip", "Archive au format Zip" },
}
listeFormat['vidéo'] = listeFormat.video
local tabFormat = listeFormat[ string.lower( format ) ]
if tabFormat then
return ( '<abbr class="abbr indicateur-format" title="' .. tabFormat[2]
.. '">' .. mw.text.nowiki( '[' .. tabFormat[1] .. ']' ) .. '</abbr>' )
else
return mw.text.nowiki( '[' ) .. format .. mw.text.nowiki( ']' )
end
end
return References