【问题标题】:How to add "active" class to navigation link, if you are on a single post page in Jekyll如果您在 Jekyll 的单个帖子页面上,如何将“活动”类添加到导航链接
【发布时间】:2016-03-01 20:40:54
【问题描述】:

我的personal site 是基于 Jekyll 开发的。另外,我实现了active 导航逻辑。因此,如果我点击“Journal”,它会将我带到可以找到所有帖子的列表页面。

导航项:

  1. 首页
  2. 杂志
  3. 项目
  4. 关于
  5. 联系方式

现在我正在寻找一种解决方案,当我在单个帖子页面上或阅读帖子时,我可以为“Journal”提供活动课程。

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

提前致谢。

【问题讨论】:

    标签: navigation jekyll state


    【解决方案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/" %} 似乎不起作用。

    【讨论】:

    • 可能是由于其他一些永久链接设置,这意味着它不太适用,而不适用于其他
    【解决方案2】:

    如果 '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 上找到有关自定义永久链接的信息。

    【讨论】:

      猜你喜欢
      • 2014-06-13
      • 1970-01-01
      • 2016-05-03
      • 2020-11-21
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多