导入 Nunjucks 宏?

Importing a Nunjucks Macro?

我有一个呈现 nunjucks contact.html 模板的脚本,如下所示:

    let fs = require('fs');
    let nj = require('nunjucks');
    var contact = fs.readFileSync('./src/contact.html','utf8');
    nj.configure('src');
    let result = nj.render('contact.html');
    console.log(result);

它工作正常并记录正确的 result

我正在尝试添加一个宏,并将定义放在 templates/forms.njk 文件中。然后我尝试像这样从 contacts.html 加载它:

{% import "templates/forms.njk" as forms %}

{% set title = 'Contact' %}
{% extends '_layout.html' %}
{% block content %}
<h1>Test Template</h1>
{% endblock %}

现在 results 记录为 null,但如果我删除宏导入将记录呈现的联系人模板。想法?

src 目录布局如下所示:

├── contact.html
├── index.html
├── _layout.html
└── templates
    └── forms.njk

第二个宏缺少结束语句 {% endmacro %}Sample project here if anyone wants to play with the setup.

注意还更新了 nj.render 调用以记录错误。