Так, ви можете це зробити.
Для цього ми скористаємось тим, що поточна сторінка завжди представлена рідинною змінною: page
у шаблоні, а також що кожна публікація / сторінка має унікальний ідентифікатор в своєму page.url
атрибуті.
Це означає, що нам просто потрібно використовувати цикл для побудови нашої навігаційної сторінки, і цим ми можемо перевірити page.url
кожен член циклу. Якщо він знаходить відповідність, він знає виділити цей елемент. Ось і ми:
{% 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 %}
Це працює, як очікувалося. Однак ви, мабуть, не хочете, щоб усі ваші сторінки знаходились у вашій навігаційній панелі. Для емуляції "групування" сторінки ви можете зробити щось на зразок цього:
## 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 %}
Тепер сторінки можна "згрупувати". Щоб надати сторінці групу, потрібно вказати її на сторінках YAML Front Matter:
---
title: blah
categories: blah
group: "navigation"
---
Нарешті, ви можете використовувати свій новий код! Скрізь, де вам потрібна навігація для вашого шаблону, просто "зателефонуйте" своєму файлу включення та передайте йому деякі сторінки та групу, яку ви хочете відобразити:
<ul>
{% assign pages_list = site.pages %}
{% assign group = 'navigation' %}
{% include pages_list %}
</ul>
Приклади
Ця функціональність є частиною фреймворку Jekyll-Bootstrap . Ви можете побачити точну документацію для коду, викладеного тут: http://jekyllbootstrap.com/api/bootstrap-api.html#jbpages_list
Нарешті, ви можете побачити це в дії на самому веб-сайті. Просто подивіться на праворуч навігацію, і ви побачите, що поточна сторінка виділена зеленим кольором: Приклад виділеного навігаційного посилання