Adonis Nunjucks
Nunjucks templating provider for AdonisJs framework version 4.
Installation
In order to use adonis-nunjucks
npm install adonis-nunjucks --save
Once you have installed the provider from npm, make sure that the ViewProvider is registered as a provider inside start/app.js file.
const providers = 'adonis-nunjucks/providers/ViewProvider'
Make sure the default edge provider (@adonisjs/framework/providers/ViewProvider
) is not registered as they will conflict with each other.
Compatibility
This package has been rebuilt for Adonis 4 and is incompatible with Adonis 3 and earlier. For Adonis v3 install the previous version (3.01) with :
npm install adonis-nunjucks --save
Basic Usage
Let’s start with the basic example of saying Hello world
by rendering a nunjucks template. All of the views are stored inside resources/views
directory and end with .html
extension.
Create a nunjucks template at resources/views/hello.html
. You can use an adonis/ace command to create the view.
adonis make:nunjucks home ✔ create resources/views/home.html
Now let's create a route that renders it:
Route
The view.render method takes the relative path to the view file. There is no need to type .html extension.
View Methods
These methods are available on the view context object in controllers and middleware.
view.share(locals)
Share variables as a local with this template context.
Param | Type | Description |
---|---|---|
locals | Object |
Key value pairs |
Example
Quite often you want to share request specific values with your views, this can be done in middleware or controllers by passing an object to the share method.
async { view await }
Inside your views, you can access it like any other variable
{{apiVersion}}
String
view.render(template, locals) ⇒ Render a nunjucks template
Returns: String
- HTML rendered output
Param | Type | Description |
---|---|---|
template | String |
View file (.html extension not required) |
locals | Object |
Variables to be passed to the view |
String
view.renderString(string, locals) ⇒ Render a string of nunjucks
Returns: String
- HTML rendered output
Param | Type | Description |
---|---|---|
string | String |
String to be rendered |
locals | Object |
Variables to be passed to the view |
View Helpers
A number of global methods and contextual helpers are injected into all views.
Request
All views have access to the current request object, and you can call request methods inside your templates as well.
The request URL is {% request.url() %}
Also, there is a direct helper to get the URL.
The request URL is {% url %}