2016-04-21 15 views
7

Vorrei inserire automaticamente un ultimo timestamp aggiornato (Non la variabile date per la pagina) per ogni post in fase di costruzione Jekyll, come ottenerlo? Penso di dover dichiarare una variabile, ma non sono sicuro di come assegnare il valore a quella variabile.Come inserire l'ultimo timestamp aggiornato nella pagina di Jekyll al momento della compilazione?

Ad esempio, qualche volta aggiorno un vecchio post, oltre a mostrare la data del post, voglio anche mostrare l'ultima data di aggiornamento.

Ho provato {{Time.now}} ma sembra non funzionare.

+1

È possibile utilizzare {{site.time}}. –

+0

Grazie! @ David Javel, ma quello che voglio davvero è il tempo dell'ultimo aggiornamento post ora intero tempo di aggiornamento del sito. –

+1

Questo è quello che pensavo. Ora che sono sicuro, ti darò una risposta. –

risposta

12

L'unica raccolta che ha un modified_time è site.static_files. Non è così utile nel nostro caso.

Un modo per ottenere il numero last-modified-date per i messaggi nel sito Jekyll è utilizzare un gancio (documentation).

_plugins/gancio-add-last-modified-date.rb

Jekyll::Hooks.register :posts, :pre_render do |post| 

    # get the current post last modified time 
    modification_time = File.mtime(post.path) 

    # inject modification_time in post's datas. 
    post.data['last-modified-date'] = modification_time 

end 

E 'ora disponibile nei tuoi messaggi come: {{ page.last-modified-date }}. E puoi formattare questa data con un filtro data come {{ page.last-modified-date | date: '%B %d, %Y' }}. Vedi lo Alan W. Smith excellent article on date Jekill Liquid date formating topic.

Avviso importante: i ganci non funzionano sulle pagine Github.

+0

Proverò il plugin e grazie per il promemoria (costruirò la pagina prima di passare a 'gh-pages'). –