Kurzversion:Erhalten nächste und vorherige Elemente aus einem Array in flüssiger
I 1 auf eine Zahl in einer flüssigen Vorlage hinzufügen mag, und das Ergebnis als Array-Index verwenden.
{% capture plus_one %}{{ 0 | plus: 1 }}{% endcapture %}
<div>-Value of plus_one: {{plus_one}}</div>
<div>-This works: {{site.posts[1].title}}</div>
<div>-This doesn't: {{site.posts[plus_one].title}}</div>
Ergebnis:
-Value of plus_one: 1
-This works: The Zone
-This doesn't:
Lange Version:
ich Jekyll bin mit, ohne Plugins. Ich möchte dem aktuellen Beitrag einen Link zum nächsten Beitrag in derselben Kategorie geben. (In diesem Code ist die Kategorie auf "Journal" festgelegt.)
Mein Code führt eine Schleife über alle Posts im Array category und sucht nach dem aktuellen Post. Wenn es gefunden wird, versuche ich den nächsten Post in der Kategorie-Array zu greifen.
{% for num in (0..site.categories.journal.size) %}
{% assign page2 = site.categories.journal[num] %}
{% if page2.title == page.title and page2.date == page.date %}
{% capture plus_one %}{{ num | plus: 1 }}{% endcapture %}
{% endif %}
{% endfor %}
<div>value of plus_one: {{plus_one}}</div>
<div>This doesn't work: {{site.categories.journal[plus_one].title}}</div>
<div>This does: {{site.categories.journal[1].title}}</div>
Ergebnis:
<div>value of plus_one: 1</div>
<div>This doesn't work: </div>
<div>This does: A Blog Post Title</div>
Ich denke, den Wert meiner Variable 'plus_one' als String behandelt wird statt einer Nummer.
Gibt es eine Möglichkeit, es in eine Zahl zu konvertieren?
Oder gibt es einen anderen Weg zu erreichen, was ich versuche zu tun?
Das klingt besser als die Lösung, die ich unten geschrieben, können aber zeigen Sie ein Beispiel, wie man „diesen Schritt durchlaufen“, so dass wir fordern page.next halten können, bis wir eine Seite mit der passenden Kategorie gefunden haben ? –
Iteration ist ein grundlegendes Konzept der Programmierung, Sie tun es sogar in Ihrer eigenen geposteten Antwort, also weiß ich nicht wirklich, wie ich darauf antworten soll. – Polygnome
Sorry, meine Frage war nicht sehr klar. Ich habe versucht, nach dem Zustand der Schleife zu fragen. Im Idealfall möchten wir nur loop _until_ eine passende Seite gefunden wird. Es wäre jedoch akzeptabel, eine Schleife zu machen, bis wir die letzte Seite erreicht haben (wenn page.next null ist). Bisher habe ich noch keine Möglichkeit gefunden, Liquid zu einer Schleife zu machen, die unter diesen Bedingungen beendet wird. –