jekyll page.url不';它不能正常工作
假设是代码片段:jekyll page.url不';它不能正常工作,jekyll,Jekyll,假设是代码片段: <ul> {% assign navigation = site.data.nav %} {% for link in navigation %} {% assign active = nil %} {% for sublink in link.submenu %} {% if page.url contains sublink.url %} {% assign active = 'active' %}
<ul>
{% assign navigation = site.data.nav %}
{% for link in navigation %}
{% assign active = nil %}
{% for sublink in link.submenu %}
{% if page.url contains sublink.url %}
{% assign active = 'active' %}
{% endif %}
{% endfor %}
{% if page.url contains link.url %}
{% assign active = 'active' %}
{% endif %}
<li class="{{ active }}>
<a href="{{ site.baseurl }}{{ link.url }}">{{ link.text }}</a>
{% if link.submenu %}
<ul>
{% for sublink in link.submenu %}
<li {% if page.url contains sublink.url %}class="active"{% endif %}>
<a href="{{ site.baseurl }}{{ sublink.url }}">{{ sublink.text }}</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
因此,每一个菜单项都呈现出应有的效果,并且工作正常。但我在这里得到的唯一问题是,变量active没有根据这些变量进行更新,而是保持为零。此外,即使page.url包含sublink.url或link.url,下一行也不会呈现该活动类
<li {% if page.url contains sublink.url %}class="active"{% endif %}>
可能是什么问题???是因为那些link.url或sublink.url实际上是模块的url吗??那么,如何真正比较当前加载的页面url是否包含该sublink.url或link.url??有什么想法吗??我尝试了site.url而不是page.url,但没有得到任何结果。我解决了这个问题,将nav、yml中的url分为三部分,并将模块名称与page.categories进行比较:)
<li {% if page.url contains sublink.url %}class="active"{% endif %}>