Nunjucks syntax
Depending on your environment you'll want to use render
or include
. As a rule of thumb: server-side use include
, precompiled browser use render
. If you're using vf-eleventy you should use include
.
Using include
You'll need to pass a context object from your code or Yaml file (exampe), as well as the path to the Nunjucks template. Nunjucks' include
is an abstraction of render
and provides some additional portability.
{% set context fromYourYamlFile %}
- or -
{% set context = {
"component-type": "block",
"variant": "default",
"search_action": "#",
"search_autofocus": false,
"search_button": "Search",
"search_label": "Search",
"search_placeholder": "Enter your search terms",
"search_description": false,
"search_id": "searchitem",
"search_value_default": ""
}
%}
{% include "../path_to/vf-search/vf-search.njk" %}
Using render
This approach is best for bare-bones Nunjucks environments, such as precompiled templates with the Nunjucks slim runtime where include
is not be available.
{% render '@vf-search', {
"component-type": "block",
"variant": "default",
"search_action": "#",
"search_autofocus": false,
"search_button": "Search",
"search_label": "Search",
"search_placeholder": "Enter your search terms",
"search_description": false,
"search_id": "searchitem",
"search_value_default": ""
} %}
HTML
<form action="#" class="vf-form | vf-search">
<div class="vf-form__item | vf-search__item">
<label class="vf-form__label vf-u-sr-only | vf-search__label" for="searchitem">Search</label>
<input type="search" placeholder="Enter your search terms" id="searchitem" class="vf-form__input | vf-search__input">
</div>
<button type="submit" class="vf-search__button | vf-button vf-button--primary"> Search</button>
</form>