Ich baue eine statische Website auf gh-pages mit liquid. Ich erzeuge eine einfache Navigation auf zwei Ebenen aus einer Datendatei. Mein Problem ist, dass ich festhalte, um zwei Dinge zu tun:Jekyll Liquid Unter-Navigation nicht richtig auswählen
- Wenden Sie eine "ausgewählte" Klasse auf das aktuelle Element der Seitenverknüpfung an.
- Wenden Sie eine "offene" Klasse auf das übergeordnete Listenelement an, wenn ein Sublink-Menü vorhanden ist.
Hier ist das Format, das ich meine _data/nav.yml
Datei bin
- title: Top Level Nav Item
url: level-1/
sublinks:
- title: Child Nav Item 1
url: child-1/
- title: Child Nav Item 2
url: child-2/
Hier ist, wie ich meine Navigation baue:
{% assign current_page = page.url | remove: 'index.html' %}
<ul class="-nav">
{% for nav in include.nav %}
{% assign current = null %}
{% if nav.url == current_page %}
{% assign current = ' _selected' %}
{% endif %}
{% if nav.url contains current_page %}
{% assign open = ' _open' %}
{% endif %}
<li class="-item{{ current }}{{ open }}">
<a href="{{ site.url }}{{ nav.url }}">{{ nav.title }}</a>
{% if nav.sublinks and current_page contains nav.url %}
{% include navigation.html nav=nav.sublinks%}
{% endif %}
</li>
{% endfor %}
</ul>
Auch dieses richtig meine Navigation baut, aber es doesn Wendet weder die ausgewählte noch die offene Klasse an.
Hier ist, was ich möchte, dass es wie am Ende aussehen:
Was mache ich falsch?
Nicht sicher, dass dies für die Ausgabe von Bedeutung ist, aber Sie haben inkonsistente Zitate um Werte. Was passiert auch, wenn Sie die Anweisung '{% assign current = null%}' entfernen? –
@JoelGlovier Nichts passiert, wenn ich '{% assign current = null%}' 'lösche. – Hynes