A simple Nunjucks command-line (CLI) tool to compile and watch templates into static HTML files.
In addition to rendering files with an input JSON blob, there is built-in support for a couple useful features:
- Support for front-matter in your nunjucks templates.
- Auto-generated template file slugs can be auto-injected into template data during render.
- This package is not locked to any version of nunjucks, uses async/await, and has a minimal dependency list.
npm i -D nunjucks-command # local
npm i -g nunjucks-command # global
nunjucks <file|glob> [context] [options]
For convenience, process.env
object is added to the context as env
.
Include the supported front-matter start {% fm %}
and end {% endfm %}
tags. Within these tags, add a valid JSON
document. The values in this front-matter are assigned to the current context object for that rendered template only.
This will override any preset or added context data for that template, from that render-point onward.
For example the following would output a "hello mars!" message in the HTML:
{% fm %}
{
"message": "hello mars!"
}
{% endfm %}
<html>
{{message}}
</html>
nunjucks foo.tpl data.json
Compiles foo.tpl
to foo.html
with data from data.json
(and variables from process.env
as env
).
nunjucks **/*.tpl
Compiles all .tpl
files (including subdirectories), except the ones starting by _
(so you can use them as layouts).
-p <directory>
Path where the templates live. Default to the current working directory. See https://mozilla.github.io/nunjucks/api.html#configure
-o <directory>
Output directory.
-s
Attach a "template.slug" property in data for each rendered file that represents the relative file path.
This, for example, can be accessed in a nunjucks template: {{ template.slug }}
-w
Allows to keep track of file changes and render accordingly (except files starting by _
).
-e <ext>
Extension for rendered files. Defaults to html
.
-O <file>
Takes a json file as Nunjucks options. Defaults are :
{
"trimBlocks": true,
"lstripBlocks": true,
"noCache": true
}
See https://mozilla.github.io/nunjucks/api.html#configure
nunjucks foo.tpl -p src -o dist -O nj.json
Compiles src/foo.tpl
to dist/foo.html
, with nj.json
as nunjucks environnement options.
nunjucks *.tpl data.json -w -p src
Compiles all .tpl
files (except ones starting with _
) in the src
folder to the current working directory, with data.json
as metadata, and keeps running in the background for files changes.