« Module:Date » : différence entre les versions

Contenu supprimé Contenu ajouté
m formatage
Mise à jour à partir de Module:Date/Bac à sable à la demande de Zebulon84
Ligne 23 :
{ "juin", "jun", "june", nJour = 30 },
{ "juillet", "juil.", "juil", "juill.", "juill", "jul", "july", nJour = 31 },
{ "août", "aout", "aou", "aug", "august", nJour = 31 },
{ "septembre", "sept.", "sept", "sep.", "sep", "september", nJour = 30 },
{ "octobre", "oct.", "oct", "october", nJour = 31 },
Ligne 123 :
end
-- l'annee n'est ni dans la partie aucun, ni dans la partie tous donc il faut tester si la page existe.
mw.log( 'ifexist : ' .. lien )
cibleLien = mw.title.new( lien )
if cibleLien and cibleLien.exists then
Ligne 249 ⟶ 248 :
local qualificatif = trim( args[4 + decalage] ) or args.qualificatif
-- on traite l'age, naissance et mort
local age = trim( args['âge'] or args['age'] )
age = age and fun.age( annee, numMois, jour )
local naissance = trim( args.naissance )
local mort = trim( args.mort )
-- on traite le calendrier
Ligne 292 ⟶ 293 :
end
if jannee ~= annee then
julien3 = '(<abbr class=abbr title="selon le calendrier julien">' .. jjour .. ' &nbsp;' .. jmois .. ' &nbsp;' .. jannee .. '</abbr>)'
else
julien2 = '(<abbr class=abbr title="selon le calendrier julien">' .. jjour .. ' &nbsp;' .. jmois .. '</abbr>)'
end
end
Ligne 313 ⟶ 314 :
-- s'il n'y a pas de lien sur le mois, il sera affiché avec le jour.
wikiListe.insert( '[[' .. lien .. '|' .. jour .. ']]' )
wikiListe.insert( '[[' .. lien .. '|' .. jour .. ' &nbsp;'.. mois .. ']]' )
iso.insert( 1, string.sub( '0' .. gjour, -2 ) )
end
Ligne 359 ⟶ 360 :
.. annneeAvJc .. ' avant Jésus-Christ">av.&nbsp;J.-C.</abbr>'
end
iso.insert( 1, tostring( annneeAvJc - 10000 ) ) -- ! avant JC, ce n'est pas une date iso ! Pour un tri correct sur wiki.
else
iso.insert( 1, string.sub( '000' .. annee , -4 ) )
end
lien = lien or annee
if mois and #wikiListe == 0 then
-- si le mois n'a pas de lien et n'est pas affiché avec le jour, il est affiché avec l'année.
texte = mois .. ' &nbsp;' .. texte
end
wikiListe.insert( '[[' .. lien .. '|' .. texte .. ']]' )
iso.insert( 1, string.sub( '000' .. annee , -4 ) )
end
if( julien3 ) then
Ligne 372 ⟶ 375 :
end
-- l'age
local classAge
if type( age ) == 'number' and age >= 0 then
if age == 0 then
age = '<span class="noprint"> (moins d\'1 un&nbsp;an)</span>'
elseif age == 1 then
age = '<span class="noprint"> (1 &nbsp;an)</span>'
else
age = '<span class="noprint"> (' .. age .. ' &nbsp;ans)</span>'
end
classAge = 'class="bday" '
else
age = ''
classAge = ''
end
-- compilation du résultat
local wikiTextwikiTexte = wikiListe.concat( '&nbsp;' )
local isoTexte = iso.concat( '-' )
-- On ajoute un peu de sémantique. La date doit être dans le calendrier grégorien proleptique
-- ce formatage ne s'applique pas avant J.C.
-- On ajoute un peu de sémantique.
if wikiText ~= '' and ( gannee == nil or gannee > 0) then
local wikiHtml = mw.html.create( '' )
wikiText = '<time '.. classAge .. 'datetime="' .. iso.concat( '-' ) .. '">' .. wikiText .. '</time>'
local dateHtml = wikiHtml:tag( 'span' )
:addClass( 'date-lien' )
:addClass( 'datasortkey' )
:attr( 'data-sort-value', isoTexte )
:wikitext( wikiTexte )
if naissance then
dateHtml:addClass( 'bday' )
elseif mort then
dateHtml:addClass( 'dday' )
end
if age then
wikiHtml:wikitext( ' ' )
:tag( 'span' )
:addClass( 'noprint')
:wikitext( age )
:done()
end
return wikiTexttostring( ..wikiHtml age)
end