Différences entre les pages « Module:Biblio/Lien web » et « Modèle:Références »

De Les Mots de l'agronomie
< Module:Biblio(Différence entre les pages)
imported>Jacques Ducloy
m (1 révision importée)
 
imported>Jacques Ducloy
m (1 révision importée)
 
Ligne 1 : Ligne 1 :
local Lien = { }
+
<includeonly><div class="references-small {{#switch: {{{groupe|{{{group|}}}}}}|alpha=lower-alpha|grec=lower-greek|#default=decimal}}" style="{{#if: {{{taille|}}}
 
+
  | column-width:{{taille em|{{{taille}}}}}; {{#if: {{{colonnes|}}} | column-count:{{{colonnes}}}; }}
local Commun = require( 'Module:Biblio/Commun' )
+
  | {{#if: {{{colonnes|}}}
local References = require( 'Module:Biblio/Références' )
+
      | column-width:{{#switch:{{{colonnes}}}|1=72|2=36|3=24|4=18|5=14.4|6=12|7=10.3|8=9}}em;
local Outils = require( 'Module:Outils' )
+
    }}
local TableBuilder = require( 'Module:TableBuilder' )
+
}}">{{#tag:references|{{{références|{{{refs|}}}}}}|responsive={{#if:{{{taille|}}}{{{colonnes|}}}{{{pasdecol|}}}|"0"|"1"}}|group={{{groupe|{{{group|}}}}}}}}
local Langue = require( 'Module:Langue' )
+
</div>{{#if:{{NAMESPACE}}||{{#if:{{{1|}}}{{{2|}}}{{{colwidth|}}}<!--{{{group|}}}--><!--{{{refs|}}}-->|[[Catégorie:Page utilisant le modèle Références avec un paramètre obsolète]]}}}}</includeonly><noinclude>{{Documentation}}</noinclude>
local Lien = { }
 
 
 
local Commun = require( 'Module:Biblio/Commun' )
 
local References = require( 'Module:Biblio/Références' )
 
local Outils = require( 'Module:Outils' )
 
local TableBuilder = require( 'Module:TableBuilder' )
 
local Langue = require( 'Module:Langue' )
 
 
 
 
 
local function formatLien( args, dead )
 
-- La table wiki va recevoir tout les petits bouts de texte, et sera concaténée à la fin.
 
-- Elle utilise la meta-table de TableBuilder, permettant d'utiliser les fonctions de la
 
-- library table comme des méthodes. minsert permet d'insérer plusieurs éléments en une
 
-- seule fois en, ignorant les valeurs nil.
 
local wiki = TableBuilder.new()
 
local modele = '[[Modèle:Lien web|{{Lien web}}]]'
 
if dead then
 
modele = '[[Modèle:Lien brisé|{{Lien brisé}}]]'
 
end
 
 
-- validArg renvoie le premier paramètre non vide, ou nil s'ils sont tous vides.
 
-- Seuls les noms des paramètres doivent être transmis à la fonction.
 
local validArg = function ( ... ) return Commun.validTextArg( args, ... ) end
 
 
-- Variables servant à la catégorisation
 
args.categ = {}
 
 
-- Span initial, id
 
local spanInitial, spanFinal = Commun.spanInitial ( args, validArg )
 
wiki.minsert( spanInitial,  Commun.libelle( args ) )
 
 
-- indication de langue
 
local indicLangue, codeLangue = Commun.indicationDeLangue ( args, validArg )
 
if Outils.notEmpty( indicLangue ) then
 
wiki.minsert( indicLangue, ' ' )
 
end
 
 
-- Liste des auteurs et de leurs responsabilités (principales et secondaires)
 
local auteur = validArg( 'nom1', 'nom', 'auteur1', 'auteur', 'auteurs', 'auteur institutionnel', 'last1', 'last', 'author1', 'author' )
 
if auteur then
 
if validArg( 'auteurs' ) then
 
wiki.minsert( args.auteurs )
 
else
 
wiki.minsert( Commun.responsabilitePrincipale( args, validArg, true ) )
 
end
 
local coauteur = validArg( 'co-auteur', 'coauteurs', 'coauteur', 'coauthors' )
 
if coauteur then
 
wiki.minsert( ', ', coauteur )
 
end
 
wiki.minsert( Commun.responsabiliteSecondaire( args, validArg ), ', ' )
 
end
 
 
-- url
 
local url = validArg( 'url', 'lire en ligne', 'url texte', 'lien' )
 
if url then
 
-- remplacement des crochets et espaces par leur équivalent HTML
 
url = string.gsub( string.gsub( string.gsub( url, ' ', '%%20' ), '%[', '%%5B' ), '%]', '%%5D' )
 
-- ajout http:// si nécessaire :
 
if not ( string.match( url, '^http' ) or string.match( url, '^ftp' ) or string.match( url, '^//' ) ) then
 
url = 'http://' .. url
 
end
 
if dead then
 
wiki.minsert( '<span class="noarchive">' )
 
end
 
wiki.minsert( '[', url )
 
elseif not validArg( 'pmid', 'pmcid', 'doi', 'jstor', 'bibcod', 'math reviews', 'zbl', 'zbmath', 'arxiv' ) then
 
args.categ.url = true
 
end
 
 
-- titre
 
local titre = validArg( 'titre', 'title' )
 
local description = validArg( 'description' )
 
if titre then
 
-- suppression des retours ligne éventuels, sinon MediaWiki ne reconnaît pas le lien externe
 
-- et remplacement des crochets par leur équivalent HTML (uniquement le crochet de fermeture)
 
titre = titre:gsub( '\n', ' ' ):gsub ( '%]', '&#93;' )
 
local  c = titre:sub(1,1)
 
-- on teste d'abord si titre contient déjà des guillemets
 
if(string.byte(c) ~= 194) then
 
local sousTitre
 
if validArg( 'sous-titre' ) then
 
sousTitre = ' : ' .. args['sous-titre']
 
sousTitre:gsub( ' ?»$', '' )
 
else
 
titre:gsub( ' ?»$', '' )
 
end
 
local color = dead and ' color:red;'
 
wiki.minsert( ' « <cite style="font-style: normal;', color, '">', titre, sousTitre, '</cite> »', url and ']' )
 
else
 
wiki.minsert( ' ', titre, url and ']' )
 
end
 
 
-- traduction titre
 
local traductionTitre = validArg( 'traduction titre' )
 
if traductionTitre and traductionTitre ~= args.titre then
 
wiki.minsert( ' [« ', traductionTitre, ' »]' )
 
end
 
if description then
 
wiki.minsert( ', ', description )
 
end
 
elseif description then
 
if dead then
 
wiki.minsert( ' <span style="color:red;">', description, '</span>', url and ']' )
 
else
 
wiki.minsert( ' ', description, url and ']' )
 
end
 
else
 
args.categ.titre = true
 
if url then
 
wiki.minsert( ' ',  url, ']' )
 
end
 
end
 
 
-- message d'erreur
 
if args.categ.url or args.categ.titre then
 
local absent = { }
 
if args.categ.url  then
 
table.insert( absent, '« <code>url</code> »' )
 
end
 
if args.categ.titre then
 
table.insert( absent, '« <code>titre</code> »' )
 
end
 
wiki.insert( 1, Outils.erreur( 'Modèle '
 
.. modele ..' : paramètre' .. ( #absent > 1 and 's ' or ' ')
 
.. mw.text.listToText( absent ) .. ' manquant.&ensp;'
 
) )
 
end
 
 
 
-- liens archives pour les liens brisés
 
if url and dead then
 
wiki.minsert( '<sup class="plainlinks">(',
 
'[http://web.archive.org/web/*/', url, ' Archive] • ',
 
'[http://archive.wikiwix.com/cache/?url=', url, ' Wikiwix] • ',
 
'[http://archive.is/', url, ' Archive.is] • ',
 
'[https://www.google.fr/search?q=cache:', url, ' Google] • ',
 
'[[Projet:Correction des liens externes#J\'ai trouvé un lien mort, que faire ?|Que faire ?]])',
 
'</sup></span>'
 
)
 
end
 
 
 
-- format
 
wiki.minsert( References.indicationDeFormat( validArg( 'format électronique', 'format' ) ) )
 
 
-- série, site, éditeur
 
local serie = validArg( 'série', 'work' )
 
if serie then
 
wiki.minsert( [[, '']], serie, [['']] )
 
args.categ.work = validArg( 'work' ) -- il y a ambiguïté sur l'utilisation de ce paramètre
 
end
 
local site = validArg( 'site', 'website' )
 
if site then
 
wiki.minsert( [[, sur '']], site, [['']] )
 
end
 
local periodique = validArg( 'périodique' )
 
if periodique then
 
wiki.minsert( ', ', periodique )
 
end
 
local lieu = validArg( 'lieu', 'lieu édition', 'location' )
 
if lieu then
 
wiki.minsert( ', ', lieu )
 
end
 
local editeur = validArg( 'éditeur', 'publisher', 'editeur' )
 
if editeur then
 
local lienEditeur = validArg( 'lien éditeur' )
 
if lienEditeur then
 
wiki.minsert( ', [[', lienEditeur, '|', editeur, ']]' )
 
else
 
wiki.minsert( ', ', editeur )
 
end
 
end
 
 
-- date
 
if validArg( 'année', 'date', 'year', 'en ligne le', 'en ligne' ) then
 
args.date = validArg( 'date', 'en ligne le', 'en ligne' )
 
local lrm
 
if Langue.nonLatin( wiki.concat() ) then
 
lrm = '&lrm; '
 
end
 
wiki.minsert( ',', lrm, ' ', Commun.inscriptionDate( args ) )
 
end
 
if validArg( 'brisé le' ) then
 
wiki.minsert( ', brisé le ', Commun.inscriptionDate{ date = args['brisé le'] } )
 
end
 
 
-- liens externe (isbn, doi...) et "consulté le" entre parenthèses, et en plus petit, sauf en note
 
wiki.minsert( References.affichageLiensExternes( args, validArg, false, true ) )
 
 
-- fin du span
 
wiki.minsert( spanFinal )
 
 
-- citation et passage
 
local citation = validArg( 'citation', 'extrait', 'quote' )
 
if citation then
 
wiki.minsert( ' : <span class="citation">« ', citation, ' »</span>' )
 
end
 
local passage = validArg( 'page', 'pages', 'passage' )
 
if passage then
 
if string.match( passage, '^[%dIVXLCM]' ) then
 
wiki.minsert( ', ', Commun.page, passage )
 
else
 
wiki.minsert( ', ', passage )
 
end
 
end
 
 
-- Ponctuation
 
local patternPonct = '[,.;:!?] ?»?$'
 
local ponctuation = mw.ustring.match( wiki.concat():gsub( '%b<>', '' ), patternPonct )
 
if not ponctuation then
 
local ponctuationFinale = validArg( 'ponctuation finale' )
 
if ponctuationFinale == ';' then
 
ponctuationFinale = ' ;'
 
end
 
wiki.minsert( ponctuationFinale )
 
end
 
 
if mw.title.getCurrentTitle().namespace == 0 then
 
wiki.minsert(
 
args.categ.langue and '[[Catégorie:Page du modèle Lien web comportant une erreur|langue]]',
 
args.categ.url and '[[Catégorie:Page du modèle Lien web comportant une erreur|Url]]',
 
args.categ.titre and '[[Catégorie:Page du modèle Lien web comportant une erreur|titre]]',
 
args.categ.isbnInvalid and '[[Catégorie:Page avec ISBN invalide]]',
 
args.categ.issnInvalid and '[[Catégorie:Page avec ISSN invalide]]',
 
dead and not validArg( 'nocat' ) and '[[Catégorie:Article contenant un lien mort]]'
 
)
 
elseif dead and not validArg( 'nocat' ) then
 
wiki.minsert( '[[Catégorie:Page contenant un lien mort]]' )
 
end
 
 
return wiki.concat()
 
end
 
 
 
function Lien.lienWeb( args )
 
return formatLien( args, false )
 
end
 
 
 
function Lien.lienBrise( args )
 
args.titre = Commun.validTextArg( args, 'titre', 'title', 'url', 'lire en ligne', 'url texte', 'lien' )
 
return formatLien( args, true )
 
end
 
 
 
return Lien
 

Version actuelle datée du 7 décembre 2020 à 17:43

 Documentation[modifier] [purger]

Modèle:Protection

Présentation

Ce modèle ajoute les notes et références en bas de page.

Il est possible d’afficher les notes sur plusieurs colonnes. Ce procédé ne fonctionne pas sur les anciens navigateurs (notamment avec Internet explorer 9 et antérieurs) ni, de manière délibérée, avec le paramètre colonnes ou le paramètre taille lorsque le gadget ReferenceDeroulante est activé dans vos préférences.

Il permet également d’organiser des regroupements de notes ou références dans la section dédiée de bas de page.

Syntaxe

Affichage sur une seule colonne

Sur une seule colonne (équivalent de la balise <references />) :

{{Références}}

Affichage sur plusieurs colonnes

L'affichage sur plusieurs colonnes n'a aucun caractère obligatoire, et ne doit être envisagé que pour faciliter la lecture des articles par réduction notable de la longueur d'affichage de la section références, par exemple si celle-ci est très longue et contient des références courtes, ou dans le cas des listes de références utilisant les modèles {{sfn}}, {{harvsp}} et apparentés.

En donnant une taille minimale à chaque colonne (facultatif)

Sur plusieurs colonnes en fonction de la dimension de l'écran, en donnant une valeur au paramètre « taille »Modèle:NoteModèle:,Modèle:Note (paramètre à préférer) qui donne la taille minimale de chaque colonne exprimée en Modèle:Page h' ou cadratinsModèle:Note : {{Références|taille=24}} (trois colonnes selon l'écranModèle:Note) ou {{Références|taille=36}} (deux colonnes selon l'écranModèle:Note).

Modèle:AncreNote : il n'est sans doute pas possible de satisfaire pleinement tous les lecteurs avec le paramètre taille. Une valeur de 72em pour la largeur maximum permet de ne pas trop pénaliser les configurations extrêmes (petits et grands écrans). On peut à partir de cette valeur utiliser les sous-multiples : 72, 36, 24, 18, 14, 12, 10. Il semble inutile de vouloir régler ces valeurs afin de les faire correspondre à sa propre configuration, qui n'est qu'un cas particulier parmi toutes celles possibles.

En imposant le nombre de colonnes (obsolète)

Sur deux colonnes ou sur trois colonnesModèle:Etc de manière imposée (l'usage de ce paramètre est déconseillé) : {{Références|colonnes=2}} ou {{Références|colonnes=3}}Modèle:Etc Modèle:Attention

En conjuguant les deux paramètres précédents (« taille= » et « colonnes= »)

Il est possible de combiner l'usage de ces deux paramètres : dans ce cas, taille conserve le sens d’une taille minimale des colonnes (exprimée en em) tandis que colonnes définit ici un nombre maximal de colonnes (Modèle:N.B. : attention, le paramètre n'a alors plus le sens qu'il avait au § précédent, lorsqu'il était utilisé seul).

Cette méthode d’utilisation permet notamment de conserver un nombre de lignes suffisant à chaque colonne (on considère habituellement que, pour une présentation acceptable, chaque colonne doit disposer de trois lignes au minimum). Par exemple, dans le cas d’un écran large, si le nombre de références est de 16, insérer le paramètre colonnes=5 combiné à un paramètre taille=xxModèle:Note garantit que le nombre de colonnes ne pourra être supérieur à 5, donc que chaque colonne disposera au moins de « 16 (références) divisé par 5 (colonnes) » lignes, soit trois lignes (en prenant la partie entière de « 16 divisé par 5 » qui vaut 3,2) par colonne.

Voir la note plus haut sur les valeurs à donner au paramètre taille.

Regroupement de références

Pour des références groupées :

{{Références|taille=xx|groupe=nom de groupe}}

En utilisant les lettres de l'alphabet latin ou celles de l'alphabet grec

Pour des numéros de notes alphabétiques (a, b, c…) on peut utiliser le groupe prédéfini « alpha » (les appels de notes doivent aussi utiliser le groupe « alpha »), par exemple :

{{Références|taille=36|groupe=alpha}}

ou pour des numéros de notes en minuscules grecques (α, β, γ…) le groupe prédéfini « grec », par exemple :

{{Références|taille=24|groupe=grec}}

En fournissant le nom souhaité du groupe

Pour déclarer les références directement dans le modèle :

{{Références|références= 
<ref name="nom de la référence">texte de la référence</ref>
}}

Exemples d'utilisation montrant divers modes d’affichage des notes ou références

Exemple sur une seule colonne

{{Références}}

Exemple[1] de références[2] sur une[3] colonne[4]Modèle:,[5]Modèle:,[2]Modèle:,[Q 1] ; poursuite de l’exemple pour introduire un appel de note utilisant l'alphabet grecModèle:Note Modèle:Infra puis un secondModèle:Note puis un troisièmeModèle:Note :

  1. Bla bla.
  2. 2,0 et 2,1 http://fr.wikipedia.org/wiki/Modèle:Références ; exemple de référence nommée (à distinguer du groupe) ; ce qui lui permet d’être appelée plusieurs fois en rappelant son nom.
  3. Testing.
  4. http://fr.wikipedia.org/wiki/Accueil.
  5. Modèle:ISBN.

Modèle:Ancre

Exemple avec des colonnes de taille 24 cadratins (ou em) au maximum

{{Références|taille=24}}

Exemple[1] sur plusieurs[Q 2] colonnes[2] (sous Konqueror[3] et Internet Explorer[4], le résultat[3] reste[Q 3] sur une colonne[alpha 1]) ; poursuite de l’exemple pour introduire un appel de note utilisant l'alphabet grecModèle:Note Modèle:Infra puis un secondModèle:Note puis un troisièmeModèle:Note ; poursuite de l'exemple pour prouver la largeur des colonnes au moyen de la lettre « W »Modèle:,Modèle:NoteModèle:,Modèle:Note ;  ; poursuite de l'exemple pour prouver la largeur des colonnes au moyen des groupes « 00 »Modèle:NoteModèle:,Modèle:Note :

  1. Bla bla.
  2. Cette note, ainsi que la suivante, ne sert à rien, mais alors absolument à rien (je dirais même plus : elle est l’exemple parfait de prose inutileModèle:Etc
  3. 3,0 et 3,1 Modèle:Lorem ipsum. Autre exemple de référence nommée (à distinguer du groupe) ; ce qui lui permet d’être appelée plusieurs fois en rappelant son nom.
  4. Ça marche depuis la version 10. Ce navigateur web n’existe que pour Microsoft Windows et, en développement arrêté, pour d'autres systèmes tel Mac OS.

Modèle:Ancre

Exemple avec références groupées (nom de groupe « Q »)

{{Références|groupe=Q}}

Les références (définies dans les exemples ci-dessus) pour le groupe « Q »[alpha 2] apparaissent ci-après.

  1. Une référence dans le groupe « Q ». Les notes sont rangées en cet endroit : Modèle:Infra.
  2. Voir l’article 2 (nombre). Une autre référence dans le groupe « Q ». Les notes sont rangées en cet endroit : Modèle:Infra.
  3. Du verbe « rester ». Une autre référence dans le groupe « Q ». Les notes sont rangées en cet endroit : Modèle:Infra.

Modèle:Ancre

Exemple avec références groupées selon les lettres de l'alphabet latin

{{Références|groupe=alpha}}

Les références (définies dans les exemples ci-dessus) pour le groupe « alpha » apparaissent ci-après.

Modèle:N.B. : elles ont également été utilisées pour la documentation de cette page, autrement dit « pas uniquement pour les exemples ci-dessus ».

  1. Groupe « alpha ». Une référence dans le groupe « alpha », où les notes sont classées selon les lettres de l'alphabet, ce qui permet des appels de note plus discret dans le corps du texte. Les notes sont rangées en cet endroit : Modèle:Infra.
  2. À ne pas confondre avec le groupe « alpha ». Les notes de ce groupe (« alpha ») sont rangées en cet endroit : Modèle:Infra.

Modèle:Ancre

Exemple avec références groupées selon les lettres de l'alphabet grec

{{Références|groupe=grec}}

Les références (définies dans les exemples ci-dessus) pour le groupe « grec » apparaissent ci-après.

Exemple avec références définies en bas de page (l'appel se fait dans le corps du texte) - peu pratique pour la maintenance d’un article

Exemple standard

Texte (du corps d’un article) faisant appel à des références<ref name="modele1"/> déclarées dans le modèle<ref name="modele2"/>, c’est-à-dire en bas de page :
===== Références exemple A =====
{{Références|références=
<ref name="modele1">Exemple 1.</ref>
<ref name="modele2">Exemple 2.</ref>
}}

Texte (du corps d’un article) faisant appel à des références[1] déclarées dans le modèle[2], c’est-à-dire en bas de page :

Références exemple A
  1. Exemple 1.
  2. Exemple 2.

Exemple de codage sans guillemet

On peut aussi écrire cet exemple sans les guillemets dans la mesure où le nom des notes tient en un seul mot (sans espace intercalaire) ; dans ce cas, dans l'appel de note, il convient de veiller à placer une espace entre le nom de la note (exemple : « modèle11 ») et la barre oblique (« / »)  :

Texte (du corps d’un article) faisant appel à des références<ref name=modele11 /> déclarées dans le modèle<ref name=modele21 />, c’est-à-dire en bas de page :
===== Références exemple B (sans guillemets) =====
{{Références|références=
<ref name=modele11>Exemple 11.</ref>
<ref name=modele21>Exemple 21.</ref>
}}

Texte (du corps d’un article) faisant appel à des références[1] déclarées dans le modèle[2], c’est-à-dire en bas de page :

Références exemple B (sans guillemets)
  1. Exemple 11.
  2. Exemple 21.

Voir aussi

Modèle ajoutant les notes et références en bas de page.

Paramètres du modèle

Ce modèle possède une mise en forme utilisateur.

ParamètreDescriptionTypeStatut
Tailletaille

Largeur de colonne (en « em ») (*)

Par défaut
35
Exemple
30
Valeur automatique
vide
Nombresuggéré
Colonnescolonnes

Nombre de colonnes ; ou nombre maximum de colonnes quand la largeur de colonne est fixée

Par défaut
vide
Exemple
vide
Valeur automatique
vide
Nombredésuet
Pas de colonnespasdecol

Si largeur ou nombre de colonnes ne sont pas précisés, « pasdecol=oui » met sur une seule colonne en enlevant les colonnes par défaut de largeur 35 em (en fait n'importe quelle valeur, même « non », fait la même chose)

Par défaut
vide
Exemple
oui
Valeur automatique
vide
Chaînefacultatif
Groupegroupe

Nom de groupe de références

Par défaut
vide
Exemple
vide
Valeur automatique
vide
Chaînesuggéré
Référencesréférences

Pour déclarer les références directement dans le modèle

Par défaut
vide
Exemple
vide
Valeur automatique
vide
Chaînefacultatif

(*) Un Modèle:Page h' est une abréviation utilisée en typographie par les anglophones pour le mot cadratin.