无法使用 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 覆盖结束文件中的变量值。
我正在使用 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 覆盖结束文件中的变量值。