当我使用jekyll模板{%if page.title == {{category |第一个}}%}得到假

时间:2016-11-29 14:08:04

标签: templates jekyll liquid

我显示page.title{{ category | first }}发现相同,但{% if page.title == {{ category | first }} %}false。这是我的代码:

<li class=" {% if page.title == {{ category | first }} %} active {% endif %}">

语法有什么问题吗?

我的完整代码是:

{% for category in site.categories %}
    <li class=" {% if page.title == {{ category | first }} %} active {% endif %}">
    <a href="{{ site.baseurl }}/{{ category | first }}" title="{{ category | first }}">
        {% translate posts.{{ category | first }} %}
    </a>
    </li>
{% endfor %}

2 个答案:

答案 0 :(得分:0)

您应该使用category[0]来引用第一个类别。嵌套液体不起作用。

{% for category in site.categories %} 
  <li class="{% if page.title == category[0] %} active {% endif %}"> 
    <a href="{{ site.baseurl }}/{{ category | first }}" title="{{ category | first }}">
      {% translate posts.category[0] %}
    </a>
  </li>
{% endfor %}

虽然我不确定你想要在这里实现什么......

答案 1 :(得分:0)

我想要一个摘要

感谢您的回答。当没有答案我解决时使用此代码

``` 
{% for category in site.categories %}
  {% capture currentCategory %}{{ category | first }}{% endcapture %} 
<li class="{% if page.title == currentCategory %}active{% endif %}">
{% endfor %}
``` 

当我看到答案时,我知道我的答案不好

我也意识到为什么我的第一个问题

我猜{{}}可能只在html标签中使用{{xxxx}}时只是写变量名,因为在{}内部就像在模板javescript中一样