Sí, usted puede hacer esto.
Para lograrlo aprovecharemos que la página actual siempre está representada por la variable líquida: page
en la plantilla, y además que cada publicación / página tiene un identificador único en su page.url
atributo.
Esto significa que solo tenemos que usar un bucle para construir nuestra página de navegación y, al hacerlo, podemos verificar page.url
cada miembro del bucle. Si encuentra una coincidencia, sabe resaltar ese elemento. Aquí vamos:
{% 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 %}
Esto funciona como se esperaba. Sin embargo, probablemente no quieras que todas tus páginas estén en la barra de navegación. Para emular la "agrupación" de páginas, puede hacer algo como esto:
## 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 %}
Ahora las páginas se pueden "agrupar". Para asignar un grupo a una página, debe especificarlo en las páginas YAML Front Matter:
---
title: blah
categories: blah
group: "navigation"
---
¡Finalmente puedes usar tu nuevo código! Donde sea que necesite que su navegación vaya en su plantilla, simplemente "llame" a su archivo de inclusión y páselo algunas páginas y el grupo que desea mostrar:
<ul>
{% assign pages_list = site.pages %}
{% assign group = 'navigation' %}
{% include pages_list %}
</ul>
Ejemplos
Esta funcionalidad es parte del marco Jekyll-Bootstrap . Puede ver la documentación exacta del código que se describe aquí: http://jekyllbootstrap.com/api/bootstrap-api.html#jbpages_list
Finalmente puedes verlo en acción dentro del propio sitio web. Solo mire la navegación de la derecha y verá que la página actual está resaltada en verde: Ejemplo de enlace de navegación resaltado