web-dev-qa-db-fra.com

Comment puis-je afficher uniquement le message le plus récent sur ma page d'accueil avec jekyll?

<ul class="entries">
  {% for post in paginator.posts %}
  <li>
    <a href="{{ post.url }}">
    <h3>{{ post.title }}</h3>
    <p class="blogdate">{{ post.date | date: "%d %B %Y" }}</p>
    <div>{{ post.content |truncatehtml | truncatewords: 60 }}</div>
    </a>
  </li>
  {% endfor %}
</ul>

Cela montre tous mes messages, je veux juste montrer le plus récent. 

43
kabir

Ceci peut être accompli en utilisant limit:

{% for post in site.posts limit:1 %}
... Show the post ...
{% endfor %}

Vous pouvez également utiliser limit et offset ensemble pour "présenter" votre publication la plus récente:

<h1>Latest Post</h1>
{% for post in site.posts limit:1 %}
... Show the first post all big ...
{% endfor %}
<h1>Recent Posts</h1>
{% for post in site.posts offset:1 limit:2 %}
... Show the next two posts ...
{% endfor %}
94
Daniel Baird

Plutôt que de créer une boucle, assignez simplement la variable et passez à autre chose ...

{% assign post = site.posts.first %}

(Edit 2018) Puisque quelqu'un voulait savoir comment réitérer d'autres posts après l'avoir fait:

{% for post in site.posts offset:1 %}
  ... Show the next posts ...
{% endfor %}
14
Merovex

Si vous êtes ici pour la question mentionnée dans le titre, "Comment puis-je afficher uniquement le message le plus récent sur ma page d'accueil avec jekyll?" et non "comment afficher uniquement le dernier message dans mon modèle", les éléments suivants pourraient être utiles.

Avec une nouvelle version de Jekyll version 3.7.3 avec le thème des minima par défaut, créez un fichier, _layouts/home.html, avec le contenu suivant:

---
layout: none
---
{{ site.posts.first }}

Permet à Jekyll 3.7.3 d'afficher le premier message, en utilisant le modèle de message, comme page d'accueil.

2
Douglas Lovell

Il semble que vous pouvez également accéder au dernier message via le premier index de site.posts comme dans:

{%- assign latest_post = site.posts[0] -%}

Latest post: <a href="{{ latest_post.url }}">{{ latest_post.title }}</a>

Alors que site.posts.first fonctionne aussi comme mentionné par quelqu'un d'autre, l'exemple ci-dessus fournit également une manière cohérente d'accéder à d'autres index que le premier (vous n'avez pas besoin de le faire). De plus, je n’avais pas assez de réputation pour ajouter cette réponse sous forme de commentaire :)

0
Original Poster