如果您在Jekyll的单个帖子页面上,如何将“活动”类添加到导航链接

时间:2016-03-01 20:40:54

标签: navigation jekyll state

我的personal site是在杰基尔身上发展起来的。另外,我已经实现了active导航逻辑。因此,如果我点击“日记”,它会将我带到列表页面,您可以在其中找到所有帖子。

导航项目:

  1. 主页
  2. 杂志
  3. 项目
  4. 关于
  5. 联系
  6. 现在我正在寻找一个解决方案,当我在一个帖子页面或阅读帖子时,我可以将活动课程提供给“期刊”。

    您可以在WordPress中考虑current-post-ancestorcurrent-menu-parentcurrent-post-parent个帖子类,以便更好地理解这个问题。

    提前致谢。

2 个答案:

答案 0 :(得分:1)

如果'Journal'是页面'mysite.com/journal'并且您的帖子位于'mysite.com/journal/postdate/postname',您可以检查URL的第一部分是否等于菜单项,如下所示:

{% assign url_parts = page.url | split: '/' %}
<li {% if url_parts[1] == 'journal' %}class="active"{% endif %}> ... </li>

来源:http://jekyllcodex.org/basics/

这可能需要自定义永久链接。有关自定义固定链接的信息,请参阅same page

答案 1 :(得分:1)

每个帖子都有一个page.path变量,如_posts/postName.md。因此,使用您的代码,您可以使用page.path contains "_posts/",如下所示:

<li {% if page.url == '/journal/' or page.url == '/post.html/' or page.path contains "_posts/" %} class="active"{% endif %}>
  <a href="{{ site.baseurl }}/journal">Journal</a>
</li>

注意:似乎{% if page.url == '/journal/' || page.url == '/post.html/' || page.path contains "_posts/" %}无效。