2014-07-11 14 views
7

Ich versuche eine Liste von Blogposts für einen bestimmten Autor auszugeben. Ich versuchte dies, wo Jekyll Filter:Warum ist dieses Jekyll Liquid nicht Filterfilter?

{% for post in (site.posts | where:"author", "mike") %} 
    {{ post.title }} 
{% endfor %} 

Aber es gibt jeden Beitrag aus. Ich bin mir nicht sicher, was ich falsch mache.

Antwort

9

der Annahme, dass Ihr Beitrag Autor in Ihrer Titelei ist, wie folgt aus:

--- 
author: toto 
... 
--- 

Wenn Sie mit dem Autor zwei letzten Beitrag wollen == toto, gerade tun:

{% assign counter = 0 %} 
{% assign maxPostCount = 2 %} 
<ul> 
{% for post in site.posts %} 
    {% if post.author == 'toto' and counter < maxPostCount %} 
    {% assign counter=counter | plus:1 %} 
    <li>{{ counter }} - {{ post.title }}</li> 
    {% endif %} 
{% endfor %} 
</ul> 

Et hop!

EDIT: Und eine andere Lösung, die in dem Filter anstelle der if-Klausel:

{% assign posts = site.posts | where: "author", "toto" %} 
{% assign counter2 = 0 %} 
{% assign maxPostCount2 = 3 %} 
<ul> 
{% for post in posts %} 
    {% if counter2 < maxPostCount2 %} 
    {% assign counter2=counter2 | plus:1 %} 
    <li>{{ counter2 }} - {{ post.title }}</li> 
    {% endif %} 
{% endfor %} 
</ul> 

RE-EDIT: Justin Recht ist ich nicht meine zwei vars brauchen (Zähler2 und maxPostCount2), Ich kann Liquid for loopGrenze verwenden: n Option.

{% assign posts = site.posts | where: "author", "toto" %} 
<ul> 
{% for post in posts limit:3 %} 
    <Ol>{{ post.title }}</ol> 
{% endfor %} 
</ul> 

Besser!

+0

Ah! Danke vielmals. – Justin

+0

Für das Beispiel des Where-Filters brauchen Sie die Zählerlogik nicht und Sie können sie komplett entfernen, wenn Sie die Liste nicht nummerieren wollen (was Sie ohnehin mit einem OL-Tag machen könnten). – Justin

+0

Die Zählerlogik dient dazu, die Anzahl der zurückgegebenen Ergebnisse zu begrenzen. –

0

Es scheint Filter nur innerhalb Ausgangs-Tags verwendet werden sollen (die von {{ umgeben und }} Was meinen Sie so etwas wie verwenden könnte.

{{ site.posts | where "author", "mike" }} 

Aber man kann es nicht so, wie du bist verwenden tun

. Quelle: liquid documentation on Filters

+0

können Sie es wie folgt aus: http://www.leveluplunch.com/blog/2014/04/03/sort-pages-by-title-filter-array-by-layout-jekyllrb/ dh '{% assign posts = (site.posts | wo" author "," mike ")%}'? – nrob

Verwandte Themen