如何在同一文件中重复一个nunjucks块?

时间:2019-05-17 05:15:20

标签: nunjucks

我正在使用gulp和nunjucks的静态站点上工作。

例如,假设我有一个标题栏,希望在同一页面的两个位置显示。我将如何实施?

我在Jinja中看到您可以在another stackoverflow post中进行类似{% set title_s %}{% block title %}MY DEFAULT TITLE{% endblock %}{% endset %}的操作,但这似乎不适用于nunjucks。当我使用{{title_s}}时,我只会得到文本“ undefined”。

编辑:我最终仅在子模板中使用{% set title %}PAGE TITLE{% endset %}。这意味着我可以在父模板中使用该值。我现在不确定哪种方法合适。

1 个答案:

答案 0 :(得分:0)

我不确定我是否清楚地理解了您的问题,但是如果您要的是该示例,请参阅此示例

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) }}