« Module:Biblio/Article » : différence entre les versions

De Lagny-sur-Marne Wiki
Aller à la navigation Aller à la recherche
0x010D (discussion | contributions)
Suppression espace au début lorsqu'il n'y a pas de langue.
0x010D (discussion | contributions)
ajout responsabilité secondaire après le titre s'il n'y a pas d'auteur (comme Ouvrage), (bis, après correction de bug)
 
(35 versions intermédiaires par le même utilisateur non affichées)
Ligne 6 : Ligne 6 :
local Outils = require( 'Module:Outils' )
local Outils = require( 'Module:Outils' )
local TableBuilder = require( 'Module:TableBuilder' )
local TableBuilder = require( 'Module:TableBuilder' )
local Langue -- = require( 'Module:Langue' )   ne sera chargé que si nécessaire.
local Langue = require( 'Module:Langue' )




Ligne 18 : Ligne 18 :
-- validArg renvoi le premier paramètre non vide, ou nil s'ils sont tous vides.
-- validArg renvoi le premier paramètre non vide, ou nil s'ils sont tous vides.
-- Seul les noms des paramètres doivent être transmis à la fonction.
-- Seul les noms des paramètres doivent être transmis à la fonction.
local validArg = function ( ... ) return Outils.validTextArg( args, ... ) or false end
local validArg = function ( ... ) return Commun.validTextArg( args, ... ) or false end
-- variable servant à la catégorisation
-- table servant à la catégorisation
local categLangue, categAuteur, categCoauteur, categTitre, categPeriodique, categDate
args.categ = {}
-- clarification paramètre nécéssaire pour les coins
-- clarification paramètre nécessaire pour les COinS
args['périodique'] = validArg( 'périodique', 'revue', 'journal' )
args['périodique'] = validArg( 'périodique', 'revue', 'journal' )
args.titre = validArg( 'titre', 'title' )
args.titre = validArg( 'titre', 'title' )
args.passage = validArg( 'pages', 'page', 'passage', 'p.', 'pp.' )
args.passage = validArg( 'pages', 'page', 'passage', 'p.', 'pp.' )
args['format électronique'] = args.format
args.format = false
-- span initial (id) et libelé
-- span initial (id) et libellé
wiki.minsert( Commun.spanInitial ( args, validArg ) )
local spanInitial, spanFinal = Commun.spanInitial ( args, validArg )
local libelle = validArg( 'libellé' )
wiki.minsert( spanInitial, Commun.libelle( args ) )
if libelle then
wiki.minsert( '<small>[', libelle, ']</small> ' )
end
-- indication de langue
-- indication de langue
local indicLangue, codeLangue, categLangue = Commun.indicationDeLangue ( args, validArg )
local indicLangue, codeLangue = Commun.indicationDeLangue ( args, validArg )
if Outils.notEmpty( incdicLangue ) then
if Outils.notEmpty( indicLangue ) then
wiki.minsert( incdicLangue, ' ' )
wiki.minsert( indicLangue, ' ' )
end
if codeLangue then
Langue = require( 'Module:Langue' )
end
end
-- Liste des auteurs et de leur responsabilités (principale et secondaire)
-- Liste des auteurs et de leur responsabilités (principale et secondaire)
if validArg( 'nom1', 'nom', 'auteur1', 'auteur', 'auteurs', 'last1', 'last', 'author1', 'author' ) then
local auteur = validArg( 'nom1', 'nom', 'auteur1', 'auteur', 'auteurs', 'auteur institutionnel', 'last1', 'last', 'author1', 'author' )
if auteur then
if validArg( 'auteurs' ) then
if validArg( 'auteurs' ) then
wiki.minsert( args.auteurs )
wiki.minsert( args.auteurs )
else  
else
wiki.minsert( Commun.responsabilitePrincipale( args, validArg ) )
wiki.minsert( Commun.responsabilitePrincipale( args, validArg ) )
end
end
wiki.minsert( Commun.responsabiliteSecondaire( args, validArg ), ', ' )
wiki.minsert( Commun.responsabiliteSecondaire( args, validArg ), ', ' )
categAuteur = validArg( 'auteur', 'auteurs', 'author1', 'author', 1, 2, 3, 4 )
args.categ.auteur = validArg( 'auteur', 'auteurs', 'author1', 'author', 1, 2, 3, 4 )
categCoauteur = validArg( 'coauteurs', 'coauteur', 'coauthors' )
args.categ.coauteur = validArg( 'coauteurs', 'coauteur', 'coauthors' )
end
end
Ligne 65 : Ligne 62 :
else dir = nil
else dir = nil
end
end
wiki.minsert( '<span lang="', codeLangue, dir, '">')
wiki.minsert( '« <cite  style="font-style:normal;" lang="', codeLangue, dir, '">')
else
wiki.minsert( '« <cite  style="font-style:normal;">')
end
end
local lienTitre = validArg( 'lien titre' )
local titre, sousTitre = args.titre, validArg( 'sous-titre' )
if lienTitre then
wiki.minsert( '[[', lienTitre, '|' )
end
wiki.minsert( args.titre )
local sousTitre = validArg( 'sous-titre' )
if sousTitre then
if sousTitre then
wiki.minsert( ' : ', sousTitre )
titre = titre .. ' : ' .. sousTitre
end
end
wiki.minsert( lienTitre and ']]' )
titre = Commun.fusionTexteLien( titre, args['lien titre'], args.categ )
wiki.minsert( '</cite> »' )
wiki.minsert( '« <cite style="font-style:normal;">', titre, '</cite> »', codeLangue and '</span>' )
else
else
categTitre = true
args.categ.titre = true
wiki.minsert( Outils.erreur( '[[Modèle:Article|{{Article}}]] : paramètre « <code>titre</code> » manquant' ) )
wiki.minsert( Outils.erreur( '[[Modèle:Article|{{Article}}]] : paramètre « <code>titre</code> » manquant' ) )
end
-- Titre original et traducteur
local traductionTitre = validArg( 'traduction titre', 'titre original' )
if traductionTitre and traductionTitre ~= args.titre then
wiki.minsert( ' [« ', traductionTitre, ' »]' )
end
if not auteur then
local responsabiliteSecondaire = Commun.responsabiliteSecondaire( args, validArg )
if responsabiliteSecondaire then
wiki.minsert( ' ', responsabiliteSecondaire )
end
end
-- Nature du document et établissement (pour les thèses...)
local nature = validArg( 'nature article', 'nature ouvrage' )
if nature then
wiki.minsert( ' (', nature, ')')
end
local etablissement = validArg( 'établissement' )
if etablissement then
wiki.minsert( ', ', etablissement )
end
end
Ligne 96 : Ligne 105 :
local languePeriodique = validArg( 'langue périodique' )
local languePeriodique = validArg( 'langue périodique' )
if languePeriodique then
if languePeriodique then
Langue = Langue or require( 'Module:Langue' )
languePeriodique = Langue.codeLangue2( languePeriodique )
languePeriodique = Langue.codeLangue2( languePeriodique )
end
end
Ligne 104 : Ligne 112 :
end
end
-- le titre et son lien éventuel son affichés en italique
local periodiqueEtLien = Commun.fusionTexteLien( periodique, args['lien périodique'], args.categ )
wiki.minsert( ', <i>' )
if Langue.nonLatin( periodique ) then
local lienPeriodique = validArg( 'lien périodique' )
-- caractères non latin donc police droite
if lienPeriodique then
wiki.minsert( ', ', periodiqueEtLien )
wiki.minsert( '[[', lienPeriodique, '|', periodique, ']]' )
else
else
wiki.minsert( periodique )
-- le titre et son lien éventuel son affichés en italique
wiki.minsert( ', <i>', periodiqueEtLien, '</i>' )
end
end
wiki.minsert( '</i>' )
else
else
categPeriodique = true
args.categ.periodique = true
if categTitre then
if args.categ.titre then
wiki.minsert( ', ', Outils.erreur( 'paramètre « <code>périodique</code> » manquant' ) )
wiki.minsert( ', ', Outils.erreur( 'paramètre « <code>périodique</code> » manquant' ) )
else
else
Ligne 126 : Ligne 134 :
if lieu then
if lieu then
wiki.minsert( ', ', lieu )
wiki.minsert( ', ', lieu )
end
end
local editeur = validArg( 'éditeur', 'publisher' )
local editeur = validArg( 'éditeur', 'publisher' )
if editeur then
if editeur then
local lienEditeur = validArg( 'lien éditeur' )
local lienEditeur = validArg( 'lien éditeur' )
if lienEditeur then
wiki.minsert( ', ', Commun.fusionTexteLien( editeur, lienEditeur, args.categ ) )
wiki.minsert( ', [[', lienEditeur, '|', editeur, ']]' )
else
wiki.minsert( ', ', editeur )
end
end
end
Ligne 140 : Ligne 144 :
local serie = validArg( 'série' )
local serie = validArg( 'série' )
if serie then
if serie then
wiki.minsert( ', ', Outils.ordinal( serie, true ), ' série' )
if tonumber( serie ) then
end  
wiki.minsert( ', ', Outils.ordinal( serie, true ), ' série' )
else
if string.match( serie, '<sup>e</sup>$') then
wiki.minsert( ', ', serie, ' série' )
else
wiki.minsert( ', série ', serie )
end
end
end
local volume = validArg( 'volume', 'vol' )
local volume = validArg( 'volume', 'vol' )
if volume then
if volume then
Ligne 153 : Ligne 165 :
if titreVolume then
if titreVolume then
if codeLangue then
if codeLangue then
titreVolume = Langue.lang{ codeLangue, titreVolume }
wiki.minsert( ' ', Langue.lang{ codeLangue, '« ' .. titreVolume .. ' »' } )
end
else
wiki.minsert( ' « ', titreVolume, ' »' )
wiki.minsert( ' « ', titreVolume, ' »' )
end
end
end
Ligne 166 : Ligne 179 :
if titreNumero then
if titreNumero then
if codeLangue then
if codeLangue then
titreNumero = Langue.lang{ codeLangue, titreNumero }
wiki.minsert( ' ', Langue.lang{ codeLangue, '« ' .. titreNumero .. ' »'  } )
end
else
wiki.minsert( ' « ', titreNumero, ' »' )
wiki.minsert( ' « ', titreNumero, ' »' )
end
end
end
if validArg( 'année', 'date', 'year' ) then
if validArg( 'année', 'date', 'year' ) then
wiki.minsert( ', ', Commun.inscriptionDate( args ) )
args.mois = validArg( 'mois', 'saison' )
wiki.minsert( ',&lrm; ', Commun.inscriptionDate( args ) )
-- le &lrm est une marque de texte gauche à droite, utile si le texte qui précède est en droite à gauche (arabe, hébreux...)
else
else
categDate = true
args.categ.date = true
if categTitre or categPeriodique then
if args.categ.titre or args.categ.periodique then
wiki.minsert( ', ', Outils.erreur( 'paramètre « <code>année</code> » ou « <code>date</code> » manquant' ) )
wiki.minsert( ', ', Outils.erreur( 'paramètre « <code>année</code> » ou « <code>date</code> » manquant' ) )
else
else
wiki.minsert( ', ', Outils.erreur( '[[Modèle:Article|{{Article}}]] : paramètre « <code>année</code> » ou « <code>date</code> » manquant' ) )
wiki.minsert( ', ', Outils.erreur( '[[Modèle:Article|{{Article}}]] : paramètre « <code>année</code> » ou « <code>date</code> » manquant' ) )
end
end
end
-- format livre
local format = validArg( 'format livre' )
if format then
wiki.minsert( ', ', format )
end
end
Ligne 184 : Ligne 206 :
local page =  validArg( 'passage', 'pages', 'page', 'p.', 'pp.' )
local page =  validArg( 'passage', 'pages', 'page', 'p.', 'pp.' )
if page then
if page then
wiki.minsert( ', ', Commun.page, page )
if string.match ( page, '^[%dIVXL]' ) then
wiki.minsert( ', ', Commun.page, page )
else
wiki.minsert( ', ', page )
end
end
end
local noArticle = validArg( 'numéro article' )
local noArticle = validArg( 'numéro article' )
Ligne 191 : Ligne 217 :
end
end
-- lien vers l'ouvrage en ligne
-- lien vers l'article en ligne (isbn, issn, pmid, doi, lire en ligne, résumé...)
if validArg( 'url texte', 'url', 'issn', 'doi', 'pmid', 'résumé', 'ISSN', 'lire en ligne', 'isbn', 'texte', 'présentation en ligne', 'issn1', 'ISBN', 'PMID', 'pmcid', 'pmc', 'DOI', 'jstor', 'math reviews'  ) then
wiki.minsert( References.affichageLiensExternes( args, validArg, true, false ) )
local enligne = TableBuilder.new(  )
-- consulté le n'est plus affiché, voir [[Discussion_modèle:Ouvrage/Archive_5#.C3.89volution_documentation]]
enligne.minsert( References.isbn( args, validArg ), References.issn( args, validArg ) )
local patternPonct = '[,.;:!?]$'
local ponctuation = wiki.concat():gsub( '%b<>', '' ):match( patternPonct )
enligne.minsert(  
References.oclc( validArg( 'oclc' ) ),
References.pmid( validArg( 'pmid', 'PMID' ) ),
References.pmcid ( validArg( 'pmcid', 'pmc'  ) ),
References.doi( validArg( 'doi', 'DOI' ) ),
References.jstor( validArg( 'jstor' ) ),
References.bibcode( validArg( 'bibcode' ) ),
References.mathreviews( validArg( 'math reviews' ) )
)
local arxiv = validArg( 'arxiv' )
if arxiv then
enligne.minsert( '[[arXiv]] [[arxiv:' .. arxiv .. '|]]' )
end
local resume = validArg( 'résumé', 'présentation en ligne' )
if resume then
enligne.insert( References.enLigne{
lien = resume,
texte = 'résumé',
} )
end
local url = validArg( 'url texte', 'url', 'lire en ligne', 'texte' )
if url then
enligne.insert(
References.enLigne{
lien = url,
texte = 'lire en ligne',
} .. ( References.indicationDeFormat( args.format ) or '' )
)
end
--[=[ consulté le n'est plus affiché, voir [[Discussion_modèle:Ouvrage#Évolution documentation]]
local consulteLe = validArg( 'consulté le', 'accessdate', 'consulté' )
if consulteLe then
enligne.insert( 'consulté le ' .. Outils.nobr( consulteLe ) )
end
]=]
wiki.minsert( ' <small>', mw.text.nowiki( '(' ), enligne.concat( ', ' ),  ')</small>' )
end
-- ajout des méthadonnées COinS (ContextObjects in Spans)
-- ajout des méthadonnées COinS (ContextObjects in Spans)
Ligne 243 : Ligne 228 :
-- fin du span (id) et de la description de l'ouvrage
-- fin du span (id) et de la description de l'ouvrage
wiki.minsert( '</span>' )
wiki.minsert( spanFinal )
-- citation et commentaire de cet ouvrage  
-- citation et commentaire de cet ouvrage
local citation = validArg( 'extrait', 'quote', 'citation' )
local citation = validArg( 'extrait', 'quote', 'citation' )
if citation then
if citation then
wiki.minsert( ' :<blockquote>', citation, '</blockquote>' )
wiki.minsert( ' :<blockquote>« ', citation, ' »</blockquote>' )
end  
end
if validArg( 'plume' ) then
local point
if not citation and not ponctuation then
point = '.'
end
wiki.minsert( point, Commun.plume )
end
wiki.minsert( Commun.commentaire( args ) )
wiki.minsert( Commun.commentaire( args ) )
if mw.title.getCurrentTitle().namespace == 0 then
if mw.title.getCurrentTitle().namespace == 0 then
wiki.minsert(  
wiki.minsert(
categCoauteur and '[[Catégorie:Recension temporaire pour le modèle Article|coauteur]]',
args.categ.coauteur and '[[Catégorie:Recension temporaire pour le modèle Article|coauteur]]',
categLangue and '[[Catégorie:Page du modèle Article comportant une erreur|langue]]',
args.categ.langue and '[[Catégorie:Page du modèle Article comportant une erreur|langue]]',
categTitre and '[[Catégorie:Page du modèle Article comportant une erreur|titre]]',
args.categ.titre and '[[Catégorie:Page du modèle Article comportant une erreur|titre]]',
categPeriodique and '[[Catégorie:Page du modèle Article comportant une erreur|périodique]]'
args.categ.periodique and '[[Catégorie:Page du modèle Article comportant une erreur|périodique]]',
args.categ.date and '[[Catégorie:Page du modèle Article comportant une erreur|date]]',
args.categ.lienExterne and '[[Catégorie:Page du modèle Article comportant une erreur|externe]]',
args.categ.isbnInvalid and '[[Catégorie:Page avec ISBN invalide]]',
args.categ.issnInvalid and '[[Catégorie:Page avec ISSN invalide]]'
)
)
if codeLangue then
if Langue.directionLangue( codeLangue ) == 'rtl' then
wiki.minsert( '[[Catégorie:Recension temporaire pour le modèle Article|rtl]]' )
end
end
end
end

Dernière version du 22 avril 2017 à 08:18

local Article = { }


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' )


function Article.article( args ) -- La table wiki va recevoir tout les petits bouts de texte, et sera concaténtée à la fin. -- Elle utilise la metat-table de TableBuilder, permettant d'utiliser les fonctions de la -- librairy table comme des mèthodes. minsert permet d'insérer plusieurs élément en une -- seule fois en, ignorant les paramètre nil. local wiki = TableBuilder.new()

-- validArg renvoi le premier paramètre non vide, ou nil s'ils sont tous vides. -- Seul les noms des paramètres doivent être transmis à la fonction. local validArg = function ( ... ) return Commun.validTextArg( args, ... ) or false end

-- table servant à la catégorisation args.categ = {}

-- clarification paramètre nécessaire pour les COinS args['périodique'] = validArg( 'périodique', 'revue', 'journal' ) args.titre = validArg( 'titre', 'title' ) args.passage = validArg( 'pages', 'page', 'passage', 'p.', 'pp.' ) args['format électronique'] = args.format args.format = false


-- span initial (id) et libellé 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 leur responsabilités (principale et secondaire) 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 ) ) end wiki.minsert( Commun.responsabiliteSecondaire( args, validArg ), ', ' )

args.categ.auteur = validArg( 'auteur', 'auteurs', 'author1', 'author', 1, 2, 3, 4 ) args.categ.coauteur = validArg( 'coauteurs', 'coauteur', 'coauthors' ) end

-- titre, sous-titre if args.titre then if codeLangue then local dir = Langue.directionLangue( codeLangue ) if dir == 'rtl' then dir = '" dir="rtl' else dir = nil end wiki.minsert( '') end

local titre, sousTitre = args.titre, validArg( 'sous-titre' ) if sousTitre then titre = titre .. ' : ' .. sousTitre end titre = Commun.fusionTexteLien( titre, args['lien titre'], args.categ )

wiki.minsert( '« ', titre, ' »', codeLangue and '' ) else args.categ.titre = true wiki.minsert( Outils.erreur( '[[Modèle:Article|{{Article}} : paramètre « titre » manquant, paramètre « périodique » manquant, paramètre « année » ou « date » manquant]] : paramètre « titre » manquant' ) ) end

-- Titre original et traducteur local traductionTitre = validArg( 'traduction titre', 'titre original' ) if traductionTitre and traductionTitre ~= args.titre then wiki.minsert( ' [« ', traductionTitre, ' »]' ) end if not auteur then local responsabiliteSecondaire = Commun.responsabiliteSecondaire( args, validArg ) if responsabiliteSecondaire then wiki.minsert( ' ', responsabiliteSecondaire ) end end

-- Nature du document et établissement (pour les thèses...) local nature = validArg( 'nature article', 'nature ouvrage' ) if nature then wiki.minsert( ' (', nature, ')') end local etablissement = validArg( 'établissement' ) if etablissement then wiki.minsert( ', ', etablissement ) end

-- périodique local periodique = validArg( 'périodique' ) if periodique then -- on applique le code langue spécifique ou celui de l'article local languePeriodique = validArg( 'langue périodique' ) if languePeriodique then languePeriodique = Langue.codeLangue2( languePeriodique ) end languePeriodique = languePeriodique or codeLangue if languePeriodique and languePeriodique ~= 'fr' then periodique = Langue.lang{ languePeriodique, periodique } end

local periodiqueEtLien = Commun.fusionTexteLien( periodique, args['lien périodique'], args.categ ) if Langue.nonLatin( periodique ) then -- caractères non latin donc police droite wiki.minsert( ', ', periodiqueEtLien ) else -- le titre et son lien éventuel son affichés en italique wiki.minsert( ', ', periodiqueEtLien, '' ) end

else args.categ.periodique = true if args.categ.titre then wiki.minsert( ', ', Outils.erreur( 'paramètre « périodique » manquant' ) ) else wiki.minsert( ', ', Outils.erreur( '[[Modèle:Article|{{Article}} : paramètre « titre » manquant, paramètre « périodique » manquant, paramètre « année » ou « date » manquant]] : paramètre « périodique » manquant' ) ) end end

-- références : lieu, éditeur local lieu = validArg( 'lieu', 'lieu édition', 'location' ) if lieu then wiki.minsert( ', ', lieu ) end local editeur = validArg( 'éditeur', 'publisher' ) if editeur then local lienEditeur = validArg( 'lien éditeur' ) wiki.minsert( ', ', Commun.fusionTexteLien( editeur, lienEditeur, args.categ ) ) end

-- références : série, volume local serie = validArg( 'série' ) if serie then if tonumber( serie ) then wiki.minsert( ', ', Outils.ordinal( serie, true ), ' série' ) else if string.match( serie, 'e$') then wiki.minsert( ', ', serie, ' série' ) else wiki.minsert( ', série ', serie ) end end end local volume = validArg( 'volume', 'vol' ) if volume then wiki.minsert( ', ', Commun.vol, volume ) end local tome = validArg( 'tome' ) if tome then wiki.minsert( ', ', Commun.tome, tome ) end local titreVolume = validArg( 'titre volume', 'titre vol' ) if titreVolume then if codeLangue then wiki.minsert( ' ', Langue.lang{ codeLangue, '« ' .. titreVolume .. ' »' } ) else wiki.minsert( ' « ', titreVolume, ' »' ) end end

-- références : n° du périodique et titre du n° et date de publication local numero = validArg( 'numéro', 'no', 'issue' ) if numero then wiki.minsert( ', ', Commun.numero, numero ) end local titreNumero = validArg( 'titre numéro', 'titre no' ) if titreNumero then if codeLangue then wiki.minsert( ' ', Langue.lang{ codeLangue, '« ' .. titreNumero .. ' »' } ) else wiki.minsert( ' « ', titreNumero, ' »' ) end end if validArg( 'année', 'date', 'year' ) then args.mois = validArg( 'mois', 'saison' ) wiki.minsert( ',‎ ', Commun.inscriptionDate( args ) ) -- le &lrm est une marque de texte gauche à droite, utile si le texte qui précède est en droite à gauche (arabe, hébreux...) else args.categ.date = true if args.categ.titre or args.categ.periodique then wiki.minsert( ', ', Outils.erreur( 'paramètre « année » ou « date » manquant' ) ) else wiki.minsert( ', ', Outils.erreur( '[[Modèle:Article|{{Article}} : paramètre « titre » manquant, paramètre « périodique » manquant, paramètre « année » ou « date » manquant]] : paramètre « année » ou « date » manquant' ) ) end end

-- format livre local format = validArg( 'format livre' ) if format then wiki.minsert( ', ', format ) end

-- pages local page = validArg( 'passage', 'pages', 'page', 'p.', 'pp.' ) if page then if string.match ( page, '^[%dIVXL]' ) then wiki.minsert( ', ', Commun.page, page ) else wiki.minsert( ', ', page ) end end local noArticle = validArg( 'numéro article' ) if noArticle then wiki.minsert( ', article ', Commun.numero, noArticle ) end

-- lien vers l'article en ligne (isbn, issn, pmid, doi, lire en ligne, résumé...) wiki.minsert( References.affichageLiensExternes( args, validArg, true, false ) ) -- consulté le n'est plus affiché, voir Discussion_modèle:Ouvrage/Archive_5#.C3.89volution_documentation

local patternPonct = '[,.;:!?]$' local ponctuation = wiki.concat():gsub( '%b<>', ):match( patternPonct )

-- ajout des méthadonnées COinS (ContextObjects in Spans) wiki.minsert( Commun.COinS( args, validArg, 'article' ) )

-- fin du span (id) et de la description de l'ouvrage wiki.minsert( spanFinal )

-- citation et commentaire de cet ouvrage local citation = validArg( 'extrait', 'quote', 'citation' ) if citation then

wiki.minsert( ' :

« ', citation, ' »

' )

end

if validArg( 'plume' ) then local point if not citation and not ponctuation then point = '.' end wiki.minsert( point, Commun.plume ) end

wiki.minsert( Commun.commentaire( args ) )


if mw.title.getCurrentTitle().namespace == 0 then wiki.minsert( args.categ.coauteur and , args.categ.langue and , args.categ.titre and , args.categ.periodique and , args.categ.date and , args.categ.lienExterne and , args.categ.isbnInvalid and , args.categ.issnInvalid and ) if codeLangue then if Langue.directionLangue( codeLangue ) == 'rtl' then wiki.minsert( ) end end end


return wiki.concat() end


return Article