Anglais ↓ Menu ↓

# Utilisation de git pour calculer les mtimes

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,%{#{@item.raw_filename}#{ext}})
        end
        str=`git log -1 --format='%ci' -- #{filepath}`
        if str.nil? or str.empty?
            return Time.now
        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.

Mise à jour: Je tiens à remercier Eric Sunshine et Kris pour leurs conseils sur ce problème.

RSS · Tweet · FB
Ces liens sociaux préservent votre vie privée
↑ Top ↑
Published on 2010-09-02
Follow @yogsototh
Yann Esposito©
Done with Vim spacemacs & nanoc Hakyll

ADA: `DdzFFzCqrhtAvdkmATx5Fm8NPJViDy85ZBw13p4XcNzVzvQg8e3vWLXq23JQWFxPEXK6Kvhaxxe7oJt4VMYHxpA2vtCFiP8fziohN6Yp`