web-dev-qa-db-fra.com

Comment ajuster la commande de poste Jekyll?

J'ai commencé un blog basé sur Jekyll avec un thème jekyll-now . Je suis nouveau sur Jekyll et son fonctionnement (en particulier Liquid). Je comprends que les nouveaux messages doivent être les suivants: 2014-10-04-Hello-World.md. Mais je ne comprends vraiment pas comment je pourrais les commander.

Ma première pensée est qu'ils commandent par date, donc deux articles à la même date commanderaient au hasard. Mais n'est-ce pas le cas? Existe-t-il un moyen de classer les articles par ordre chronologique. OR au moins avoir une page d'archive de publication?

31
Koxzi

Il existe un exemple dans la documentation officielle de Jekyll sur la façon de créer une page d'archivage de base:
Affichage d'un index des messages

Bonus: pour une page d'archivage plus jolie (regroupée par année ou année/mois) , voir cette réponse .


Vous avez raison, je ne trouve rien dans les documents où il est dit comment les messages sont ordonnés, mais en fait, Jekyll les ordonne chronologiquement, avec le message le plus récent en premier (vous pouvez le voir si vous essayez les exemples que j'ai liés ci-dessus).

Pour les trier dans l'autre sens (le message le plus ancien en premier), vous pouvez utiliser le mot clé reversed, selon la documentation Liquid :

{% for post in site.posts reversed %}

Cependant, je ne sais pas comment deux articles à la même date sont commandés, car je n'écris pas autant de messages, donc je n'ai jamais eu ce problème :-)
Vous devez essayer cela vous-même.

32
Christian Specht

Je viens de faire face au même problème et résolu avec cette solution: https://groups.google.com/forum/#!topic/jekyll-rb/8QCIzevauS

Ajoutez un champ de date à la face avant YAML d'un article, comme ceci:

date: 2010-09-15 14:40:45

par exemple. si vous avez 2 messages le 31/12/2014, vous pouvez ajouter date: 2014-12-31 00:30:00 à latest_post.md et date: 2014-12-31 00:10:00 à old_post.md.

Vous pouvez ajouter un fuseau horaire (par exemple date: 2014-12-31 00:10:00 +08:00) si besoin

26
Yi-Ping Shih

Je veux documenter ma lutte dans ce message afin qu'il puisse aider d'autres utilisateurs. Vous devez effectuer deux modifications:

  1. Ouvrez vos messages et ajoutez du poids. par exemple, poids: 100
  2. Ouvrez votre fichier html pour le menu où vous souhaitez les articles triés. Pour le menu Java/J2EE, j'ai un fichier Java.html à la racine de mon projet.

Ensuite, ajoutez le {% assign pages_list = pages_list | sort:"weight" %} ligne comme indiqué dans le code ci-dessous. Cela triera par poids.

{% 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 %}
7