无法使用 Nunjucks 覆盖结束文件中的变量值

Not able overriding variable value from end file using Nunjucks

我正在使用 Nunjucks 作为我项目的模板引擎,我有以下场景。

基础文件可以使用布局和页面级变量并生成最终的HTML。

基础文件:base.html

<html class="{{htmlClass}}"> .. </html>

布局文件:layout.html

...
{% extends "html/_layouts/base.html" %}
{% set htmlClass = "class-1" %}
...

页面文件:page.html

...
{% extends "html/_layouts/layout.html" %}
{% set htmlClass = "class-2" %}
...

实际生成的HTML文件有:

<html class="class-1"> .. </html>

预期生成的 HTML 文件应该有(它应该附加页面级变量值):

<html class="class-2"> .. </html>

请注意我不想使用两个单独的变量。

之前我使用的是 PUG,我使用的是 block htmlClass 并用变量覆盖值 append htmlClass

我试图为 Nunjucks 找到类似的方法,不幸的是,我找不到 append

提前致谢

尝试

{% set htmlClass = "class-2" %}
{% extends "html/_layouts/layout.html" %}

而不是:

{% extends "html/_layouts/layout.html" %}
{% set htmlClass = "class-2" %}

设置 之前 扩展

最后,我找到了下面的解决方案。

{% set htmlClass = htmlClass | default('class-2') %}

现在我可以使用 Nunjucks 覆盖结束文件中的变量值。