2012-03-08 5 views
6

Come faccio a scorrere i post di un sito di Jekyll, ma agisco solo sui post in cui l'anno è uguale a un valore specifico?Restituisci solo i post di Jekyll corrispondenti all'anno specifico

{% for post in site.posts %} 
    {% if post.date.year == 2012 %} 
     <p>{{ post.date }}</p> 
     <p>{{ post.title }}</p> 
    {% endif %} 
{% endfor %} 

Quanto sopra non funziona. Qual è il modo corretto per farlo?

risposta

6

Per estrarre l'anno di una data, è necessario utilizzare il filtro date con "%Y" (la sintassi completa è elencata here). vale a dire:

{% for post in site.posts %} 
    {% capture year %}{{post.date | date: "%Y"}}{% endcapture %} 
    {% if year == "2012" %} 
     <p>{{ post.date }}</p> 
     <p>{{ post.title }}</p> 
    {% endif %} 
{% endfor %} 
+1

Che funziona davvero per te? Non sono mai riuscito a fare una tale condizione di "se" per funzionare. Né il tuo lavoro con Jekyll 0.11.2 e Liquid 2.3.0. – manatwork

+0

@manatwork Oops, certamente _appeared_ funzionava quando l'ho provato, ma mi mancava il fatto che non funzionasse ... Risolto adesso. – huon

+0

Quindi, come faresti questo, ma controlla l'esistenza di qualsiasi post durante quell'anno? Ad esempio, se ci sono post nel 2008, stampa un h4. –