Как я могу повторить блок nunjucks в том же файле? - PullRequest
1 голос
/ 17 мая 2019

Я работаю на статическом сайте, который использует gulp и nunjucks.

Например, скажем, у меня есть блок для заголовка статьи, который я хочу отобразить в двух местах на одной странице.Как бы я это реализовал?

Я видел в jinja, что вы могли бы сделать что-то вроде {% set title_s %}{% block title %}MY DEFAULT TITLE{% endblock %}{% endset %} в другой публикации stackoverflow , но, похоже, это не работает в nunjucks.Я просто получаю текст "undefined", когда использую {{title_s}}.

Редактировать: я просто использовал {% set title %}PAGE TITLE{% endset %} в дочернем шаблоне.Это означает, что я могу использовать это значение внутри родительского шаблона.Сейчас я не уверен, какой путь правильный.

1 Ответ

0 голосов
/ 27 мая 2019

Я не уверен, что понимаю ваш вопрос ясно, но посмотрите этот пример, если вы ищете то, что вы просите

article.njk

{% macro articleMacro(title, headerOnly = false) %}
  <article>
    {% if headerOnly %}
      <header>{{title}}</header>
    {% else %}
      <header>{{title}}</header>
      <p>article body</p>
      <footer></footer>
    {% endif %}
  </article>
{% endmacro %}

page.njk

{% import "article.njk" as article %}

// this will render full article
{{ article('header one', false) }}

// this will render article header
{{ article('header one', true) }}
...