scratch/content/html/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes.md
Yann Esposito (Yogsototh) 80f01b119e newblog entry
2010-09-02 16:42:39 +02:00

1.5 KiB

isHidden menupriority kind created_at title author_name author_uri tags
false 1 article 2010-09-02T15:54:10+02:00 Utilisation de git pour calculer les mtimes Yann Esposito yannesposito.com
nanoc
web
git

Vous pouvez remarquer qu'à la fin de chaque page je donne une date de dernière modification. Précédemment cette date était calculée en utilisant la date du fichier. Mais il arrive fréquemment que je fasse un touch d'un fichier pour engendrer tout le site de nouveau. Donc la date n'est pas nécessairement la vraie de modification du contenue.

J'utilise git pour versionner mon site web. Et cet outil me permet de récupérer la dernière date de vraie modification d'un fichier. Voici comment je m'y prend avec nanoc :

def gitmtime filepath=@item.path.sub('/Scratch/','content/html/').sub(/\/$/,'') ext=%{.#{@item[:extension]}} filepath<<=ext if not FileTest.exists?(filepath) filepath.sub!(ext,%{/index#{ext}}) end str=`git log -1 --format='%ci' -- #{filepath}` if str == "" return @item.mtime else return DateTime.parse( str ) end end

Bien entendu je sais que c'est très lent et absolument pas optimisé. Mais ça fonctionne comme prévu. Maintenant la date que vous voyez en bas de la page correspond exactement à la dernière date de modification de son contenu.