2014-10-04 21 views
24

Se questa domanda è già stata fatta, non potrei davvero trovarla da nessuna parte!Jekyll Post Order

Fondamentalmente ho avviato un blog basato su jekyll con un tema jekyll-now. Sono nuovo di jekyll e come funziona (soprattutto Liquid). Capisco che i nuovi post debbano essere come segue: 2014-10-04-Hello-World.md. Ma davvero non capisco come potrei ordinarli.

Il mio primo pensiero è che ordinino per data in modo che due post nella stessa data ordinino a caso. Ma non è questo il caso? C'è un modo per ordinare i post in ordine cronologico. O almeno con una pagina di post-archivio?

Ci scusiamo per la domanda piuttosto disinformata ma sono abbastanza bloccato su questo. E non riesco a trovare nulla di comprensibile sul web.

risposta

26

C'è un esempio nella documentazione ufficiale Jekyll come creare una pagina di archivio impiego tipo:
Displaying an index of posts

Bonus: Per un archivio pagina più bella (diviso per anno o anno/mese), vedere this answer .


Hai ragione, non riesco a trovare nulla nella documentazione in cui si dice come i messaggi sono ordinati, ma in realtà Jekyll fa ordine cronologicamente, con il più recente post prima (è possibile vedi questo se provi gli esempi che ho linkato sopra).

di ordinarli l'altro modo (post meno recente), è possibile utilizzare la parola chiave reversed, secondo il Liquid documentation:

{% for post in site.posts reversed %} 

Comunque, io non so come due messaggi alla stessa data sono ordinati, perché non scrivo tanti post, quindi non ho mai avuto quel problema :-)
Devi provarlo tu stesso.

+0

Grazie, ha risolto il problema. E 'un peccato che non possa ordinare per tempo visto che due messaggi nello stesso giorno sembrano ordinare, a loro piacimento! Stavo cercando di creare un archivio, quindi è davvero utile. – Koxzi

+0

Puoi ordinare per tempo, se ti sei preso la briga di leggere le risposte. ;) –

24

appena affrontato lo stesso problema e risolto con questa soluzione: https://groups.google.com/forum/#!topic/jekyll-rb/8QCIzevauSU

Aggiungere un campo data al YAML Fronte Questione di un post, in questo modo:
date: 2010-09-15 14:40:45

esempio se hai 2 post nel 2014/12/31, puoi aggiungere date: 2014-12-31 00:30:00 a latest_post.md e date: 2014-12-31 00:10:00 a older_post.md.

È possibile aggiungere il fuso orario (ad esempio date: 2014-12-31 00:10:00 +08:00) se necessario :)

+0

Ottimo per imparare che il campo data è opzionale! (L'ho mantenuto manualmente in sincronia con il nome del file ... duh :-( – tim

5

Ho avuto lo stesso problema e su Google per un lungo periodo. Mi stavo mescolando sentendo che i posti di ordinazione potrebbero essere possibili o meno.

Molto probabilmente Koxzi già ottenuto la sua risposta, ma voglio documentare la mia lotta in questo post in modo che può aiutare altri utenti

Hai bisogno di fare due modifiche.
1. Apri i tuoi post e aggiungi peso. ad es. peso: 100
2. Apri il file html per il menu in cui desideri i post ordinati. Per il menu Java/J2EE ho java.file html nel percorso root del mio progetto.
THEN

Aggiungere il {% assegnare pagine_list = pagine_list | ordina: "peso"%} linea come mostrato nel codice sottostante. Questo ordinerà in base al peso.

{% for category in site.categories %} 
    {% if category[0] contains 'java' %} 
    <h3 id="{{ category[0] }}-ref">{{ category[0] | join: "/" }}</h3> 
    <ul> 
     {% assign pages_list = category[1] %} 
     {% assign pages_list = pages_list | sort:"weight" %} 
     {% include JB/pages_list %} 
    </ul> 
    {% endif %} 
{% endfor %}