3

我是一个 nunjucks 新手 - 和 110 一起尝试。

简短版:我可以在 nunjucks 的标签中使用变量和过滤器吗?例如:

{% 设置 myVar = {{ 标题 | 降低 }} %}

(假设 {{ title }} 变量设置正确)

更长的版本/我的具体用例:

我正在尝试创建一个名为 section.njk 的布局文件并将其用于多个页面(基本上是我网站每个部分的部分首页 - 类似于 Hugo 中的 section.html 布局文件的想法)我每个部分都有一个数据文件,包含该部分的菜单。

给定以下文件:

  • guides.json
  • 带有 frontmatter 的 index.md,包括标题:“指南”

这不起作用:

{% for item in {{ title | lower }} %}
<a href="{{ item.url | url }}"><div>{{ item.title }}</div></a>
{% endfor %}

这有效:

{% for item in guides %}
<a href="{{ item.url | url }}"><div>{{ item.title }}</div></a>
{% endfor %}

所以我想知道问题是否出在 Nunjucks 的标签中使用变量,如果是这样,是否有办法解决它?

整个项目源代码在这里:https ://github.com/StarfallProjects/tech-writer-toolkit/tree/11ty (11ty 的东西在 src 中)

谢谢你的帮助。

4

1 回答 1

3

是的你可以。

{% set myVar = title | lower  %}
{% set myVar = title | lower + var2 | upper %}
{% set myVar = (title | lower  + var2) | trim %}
...
{% for item in items | sort(false, true)  %}
<a href="{{ item.url | url }}"><div>{{ item.title | lower}}</div></a>
{% endfor %}

,lower和过滤器适用于数字/字符串变量uppertrim它们不能应用于某些数组(或对象)。另一方面,sort-filter 需要一个数组作为输入。

过滤器“类型”在docs中的描述很明显。

于 2019-09-23T11:36:35.543 回答