Oui, vous pouvez le faire.
Pour ce faire, nous allons profiter du fait que la page en cours est toujours représenté par le liquide de la variable: page
dans le modèle, et aussi que chaque poste/page possède un identificateur unique en son page.url
d'attribut.
Cela signifie que nous avons juste à utiliser une boucle pour construire notre page de navigation, et en faisant ainsi, nous pouvons vérifier page.url
contre chaque membre de la boucle. S'il trouve une correspondance, il sait mettre en surbrillance cet élément. Ici, nous allons:
{% for node in site.pages %}
{% if page.url == node.url %}
<li class="active"><a href="{{node.url}}" class="active">{{node.title}}</a></li>
{% else %}
<li><a href="{{node.url}}">{{node.title}}</a></li>
{% endif %}
{% endfor %}
Cela fonctionne comme prévu. Cependant, vous ne voulez probablement pas à tous de votre page dans votre barre de navigation. Afin d'émuler la page "groupement", vous pouvez quelque chose comme ceci:
## Put the following code in a file in the _includes folder at: ./_includes/pages_list
{% for node in pages_list %}
{% if group == null or group == node.group %}
{% if page.url == node.url %}
<li class="active"><a href="{{node.url}}" class="active">{{node.title}}</a></li>
{% else %}
<li><a href="{{node.url}}">{{node.title}}</a></li>
{% endif %}
{% endif %}
{% endfor %}
{% assign pages_list = nil %}
{% assign group = nil %}
Maintenant, les pages peuvent être regroupés. Pour donner une page d'un groupe, vous devez le spécifier dans les pages YAML Avant la Matière:
---
title: blah
categories: blah
group: "navigation"
---
Enfin, vous pouvez utiliser votre nouveau code!
Partout où vous avez besoin de votre navigation pour aller dans votre modèle, il suffit "d'appel" de votre fichier et de le transmettre à certaines pages et le groupe que vous souhaitez afficher:
<ul>
{% assign pages_list = site.pages %}
{% assign group = 'navigation' %}
{% include pages_list %}
</ul>
Exemples
Cette fonctionnalité fait partie de la Jekyll-Bootstrapcadre.
Vous pouvez voir exact de la documentation pour le code présenté ici: http://jekyllbootstrap.com/api/bootstrap-api.html#jbpages_list
Enfin vous pouvez le voir en action à l'intérieur du site lui-même. Il suffit de regarder le bras droit de navigation et vous verrez la page en cours est mis en surbrillance en vert: Exemple mis en évidence nav lien