【问题标题】:Filter subpages and add classes in Jekyll在 Jekyll 中过滤子页面并添加类
【发布时间】:2015-10-20 14:46:53
【问题描述】:

我正在使用节点排序来确定 Jekyll 中子文件夹中的页面。这张图片显示了我的文件夹结构:

假设我在http://localhost/grain/ahvsuperb/ 有一个页面(如下所示为index.html)。导航到此页面将显示添加到该链接的类 on。效果很好。

当我导航到诸如http://localhost/grain/ahvsuperb/features/ 之类的页面时,我遇到了麻烦。当我导航到该页面时,both indexfeatures 都添加了 on 类。关于如何用 Liquid 过滤掉它的任何见解?

<div class="content_nav">
  <ul class="content_nav">
    {% assign sorted_pages = site.pages | sort: 'weight' %}
    {% for node in sorted_pages %}
      {% if node.title != nil and node.url != '/' %}
      {% capture nodediff %}{{ page.url | remove:node.url }}{% endcapture %}
      <li><a {% if nodediff != page.url %}class="on" {% endif %}href="{{node.url}}">{{node.title}}</a></li>
      {% endif %}
    {% endfor %}
    <li style="float:right"><a class="brochured" href="javascript:void(0);" rel="#brochuredl">Brochure</a></li>
    <li style="float:right"><a class="quoted" href="#">Get a Quote</a></li>
  </ul>
</div>

谢谢!

【问题讨论】:

  • 无法复制。你有一些存储库要展示吗?

标签: html jekyll liquid


【解决方案1】:

您的{% capture nodediff %}{{ page.url | remove:node.url }}{% endcapture %} 然后{% if nodediff != page.url %} 没有返回预期的页面确定。

这样就可以了:

<div class="content-nav">
  <ul class="content-nav">
    {% assign sorted_pages = site.pages | sort: 'weight' %}
    {% for node in sorted_pages %}
      {% if node.title != nil and node.url != '/' %}
      <li><a {% if node.url == page.url %}class="on" {% endif %}href="{{node.url}}">{{node.title}}</a></li>
      {% endif %}
    {% endfor %}
    <li style="float:right"><a class="brochured" href="javascript:void(0);" rel="#brochuredl">Brochure</a></li>
    <li style="float:right"><a class="quoted" href="#">Get a Quote</a></li>
  </ul>
</div>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-25
  • 2017-05-13
  • 2019-12-11
  • 1970-01-01
相关资源
最近更新 更多