nunjucks-command v1.1.8
Nunjucks-Command
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.
Installation
npm i -D nunjucks-command # local
npm i -g nunjucks-command # globalUsage
nunjucks <file|glob> [context] [options]For convenience, process.env object is added to the context as env.
Front-Matter
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>Basic examples
nunjucks foo.tpl data.jsonCompiles foo.tpl to foo.html with data from data.json (and variables from process.env as env).
nunjucks **/*.tplCompiles all .tpl files (including subdirectories), except the ones starting by _ (so you can use them as layouts).
Options
--path <directory>
-p <directory>
Path where the templates live. Default to the current working directory. See https://mozilla.github.io/nunjucks/api.html#configure
--out <directory>
-o <directory>
Output directory.
--slug
-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 }}
--watch
-w
Allows to keep track of file changes and render accordingly (except files starting by _).
--extension <ext>
-e <ext>
Extension for rendered files. Defaults to html.
--options <file>
-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
Advanced examples
nunjucks foo.tpl -p src -o dist -O nj.jsonCompiles src/foo.tpl to dist/foo.html, with nj.json as nunjucks environnement options.
nunjucks *.tpl data.json -w -p srcCompiles 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.