Version courte :
Je veux ajouter 1 à un nombre dans un modèle liquide et utiliser le résultat comme index de tableau.
{% 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>
Résultat :
-Value of plus_one: 1
-This works: The Zone
-This doesn't:
Version longue :
J'utilise Jekyll, sans plugins. Je veux donner à l'article actuel un lien vers l'article suivant qui est dans la même catégorie. (La catégorie est codée en dur à 'journal' dans ce code).
Mon code passe en revue tous les articles du tableau des catégories, à la recherche de l'article en cours. Lorsqu'il est trouvé, j'essaie de récupérer l'article suivant dans le tableau des catégories.
{% 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>
Résultat :
<div>value of plus_one: 1</div>
<div>This doesn't work: </div>
<div>This does: A Blog Post Title</div>
Je suppose que la valeur de ma variable "plus_one" est traitée comme une chaîne de caractères au lieu d'un nombre.
Existe-t-il un moyen de le convertir en nombre ?
Ou existe-t-il un autre moyen de réaliser ce que j'essaie de faire ?