Nunjucks 嵌套变量

Nunjucks nested variables

Nunjucks 中可以嵌套变量吗?我需要能够在我的数据库中存储一个包含 Nunjucks 变量的字符串,但它似乎不起作用。这是我需要能够执行的操作的示例:

dict = {
name: 'John',
lastname: 'Smith',
greeting: 'Hello, my name is {{ name }} {{ lastname }}'
}

然后就能做到

<span>{{greeting}}</span>

但它输出这个:

'Hello, my name is {{ name }} {{ lastname }}'

我需要这种方式的原因是因为我有一个数据库,其中包含一些带有漏洞的描述模板,并且我有一个包含值的数据库,我需要能够将它们组合起来。但它并不总是相同的值,所以我不能对它们进行硬编码。

最简单的方法是添加 globalfilter

var nunjucks  = require('nunjucks');
var env = nunjucks.configure();

env.addFilter('render', function(text) {
    return  nunjucks.renderString(text, this.ctx);
});

var res = nunjucks.renderString(
    'name: {{name}}, greeting: {{greeting | render}}', 
    {
        name: 'John',
        greeting: 'Hello {{name}}'
    }
);

console.log(res);