Невозможно переопределить значение переменной из конечного файла, используя Nunjucks - PullRequest
0 голосов
/ 23 мая 2019

Я использую 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.

Заранее спасибо ?

Ответы [ 2 ]

1 голос
/ 08 июня 2019

Наконец, я нашел решение ниже.

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

Теперь я могу переопределить значение переменной из конечного файла, используя Nunjucks.

1 голос
/ 27 мая 2019

попробуй

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

вместо:

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

установлено до продолжается

...