我想在nunjucks" set"中使用JSON数据。一个最小的例子:
的index.html
{% set divname='foo' %}
{% include 'template.nunjucks' %}
template.nunjucks
<div class="{{divname}}"></div>
哪个效果很好。我想将数据(例如divname)从index.html文件移到JSON文件中,让我们将其命名为 data.json :
{
"div_name": "foo"
}
使用gulp-data,我们可以读取这个data.json文件,并在index.html..almost的几乎任何地方使用{{div_name}}。在nunjucks内容中使用{{div_name}}似乎不太可能,可能是由于嵌套{?
{% set divname='{{div_name}}' %}
无法提取JSON数据,输出为
<div class="{{divname}}"></div> instead of <div class="foo"></div>
想要这种行为的一个非常简单的原因是,在data.json中我可以定义多个divnames(divname1 = foo,divname2 = bar,divname3 = ball),然后重用template.nunjucks。当template.nunjucks或index.html中的标记变得非常复杂时,这是一种使用模板引擎的强大方法。真实用例是一个非常长/半复杂的AWS CloudFormation模板,其中资源名称在多个位置使用,并且除此之外,不同的data.json文件用于dev和prod环境。将值移动到dev-data.json和prod-data.json,同时只保留一个&#34;索引&#34;基础架构定义的文件,其中提取模板将使事情更易于维护
{% set divname={{divname1}} %}
{% include 'template.nunjucks' %}
{% set divname={{divname2}} %}
{% include 'template.nunjucks' %}
DEV-data.json
divname1 = dev-foo
divname2 = dev-bar
PROD-data.json
divname1 = foo
divname2 = bar
Voila,dev和prod的不同数据,只保留一个index.html文件
答案 0 :(得分:3)
以前从未使用过nunjucks,但我想你可以删除Error: Failed to generate Policyfile.lock
Reason: (CookbookOmnifetch::GitCommandError) Git error: command `git reset --hard 7e5e4bccf57718cacc246f1b4d501ff7de8ac13d` failed. If this error persists,
try removing the cache directory at 'C:/Users/pcummuskey/AppData/Local/chefdk/cache/.cache/git/780b7dbee933c3a9efbfd3898d54cdf72784fa7e'.Output from the command:
error: unable to create file test/kitchen/.kitchen/tmp/librarian/cache/source/chef/site/877777683730772c36b1e6a3fc3aa2c3/windows/version-uri/a3432e93fb3c21cb7111fde71e435661/package/files/default/handlers/windows_reboot_handler.rb: Filename too long
Checking out files: 100% (389/389), done.
fatal: Could not reset index file to revision '7e5e4bccf57718cacc246f1b4d501ff7de8ac13d'.
语句中title_data
周围的括号:set
。
但是如果你已经有了标题字符串的句柄,那么为什么还要麻烦重新分配。只需直接模板:{% set title = title_data %}