0

我正在使用 Nunjucks(与 Eleventy)并且一直在重构一些导航 html 以简化事情。我已经用下面定义的宏替换了所有的“a”导航标签:

{% macro link(path,label,level) %}
  <!-- path = '{{ path }}/', page.url = '{{ page.url }}' -->
  <a href="{{ path }}/index.html"
     class="level_{{ level }} {{ 'current' if '{{path}}/' == page.url }}"><span>{{ label }}</span></a>
{% endmacro %}

我现在发现之前运行良好的“if”语句在宏中使用时不再起作用。其目的是为用户当前所在页面的链接分配“当前”类。

注意宏中的注释。这是一个测试,所以我可以看到正在比较的值是什么。奇怪的是,测试表明这些值没有问题,但“if”语句仍然没有运行。例如,这是当前页面链接的评论中出现的示例(应分配“当前”类):`。如您所见,这两个值是相同的。那么为什么'if'测试失败了?

4

1 回答 1

0

好的,似乎问题是插值。改成这个后效果很好:

{% macro link(path,label,level) %}
  <a href="{{ path }}/index.html"
     class="navLink level_{{ level }} {{ 'current' if (path+"/" == page.url) }}"><span>{{ label }}</span></a>
{% endmacro %}
于 2021-01-25T13:31:48.140 回答