A Twig-like embed
custom tag for Nunjucks.
yarn add nunjucks-embed
let EmbedTag = require('nunjucks-embed');
env.addExtension('EmbedTag', new EmbedTag({ /* options */ }));
my-template.njk
{% embed 'note.njk' %}
{% block content %}
Hello world!
{% endblock %}
{% endembed %}
note.njk
<div class='note'>
{% block content %}
<!-- content here -->
{% endblock %}
</div>
Results in:
<div class='note'>
Hello world!
</div>
By default, the embedded template will have access to the current context. To explicitly pass or ingore it, use with context
and without context
:
{% embed with context 'note.njk' %}
...
{% endembed %}
sync
:boolean
, defaulttrue
— whether to register it as a synchronous or asynchronous custom tag