Skip to content

elcharitas/cli-njk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLI Nunjucks

Version Documentation Maintenance License: ISC Twitter: elcharitas

A Simple Nunjucks CLI Wrapper and templates watcher with Extension support, to generate precompiled template files or static HTML files.

Installation

# Using NPM?
npm i -g cli-njk

# Using Yarn?
yarn add cli-njk

Usage

$ njk <file|glob> [options]

Just like Nunjucks CLI, the process.env object is added to the context as env.

Basic examples

$ njk foo.njk --options njk.json

Compiles foo.njk to foo.html with options from njk.json (and variables from process.env as env).

$ njk **/*.njk

Compiles all .njk files (including subdirectories), except the ones starting by _ (so you can use them as layouts).

CLI Options

--help, -h, -?

Setting this option will Display or Show the help

$ njk --help

--version

Setting this option will Show the current version number

$ njk -v
# 1.0.0

--path, -p

This sets the path where templates live. Defaults to the path in process.cwd()

$ njk *.njk -p src

See https://mozilla.github.io/nunjucks/api.html#configure

--outDir, --out, -D

The path to output compiled templates

$ njk *.njk -D dist

--outFile

The path to file for precompiled templates. When set, all discovered templates will be bundled into the file

$ njk *.njk --outFile precompiled.js

See https://mozilla.github.io/nunjucks/api.html#precompiling

--watch, -w

Watch files change, except files starting by "_"

N/B: Template watching is only allowed for rendering and as such the --render flag must be used

$ njk *.njk --watch --render

--render, -r

Whether or not to render files or precompile them. When not set, templates are precompiled and bundled if --outFile flag is used

$ njk *.njk --render
# Renders static HTML 

--extension, -e

Extension of the rendered or precompiled files

# When rendering
$ njk *.njk -r -e html

# When precompiling...
$ njk *.njk -e js

--extensions, -E

Set of Extensions to use. The extensions are included using nodejs' require().

To use Nunjucks Reactive for instance, we can write something like this

$ njk *.njk -E nunjucks-reactive

Files in the --path specified can also be included using their relative paths.

$ njk *.njk -E ./wrapfile ../extender

See https://mozilla.github.io/nunjucks/api.html#addextension

--options, -O

Setting up an options file can come quite handy. cli nunjucks currently supports two major scopes in options

  • Nunjucks options found in config

    {
      "config": {
        "trimBlocks": true,
        "lstripBlocks": true,
        "noCache": true
      }
    }

    See https://mozilla.github.io/nunjucks/api.html#configure

  • Nunjucks Compiler options

    • Environment context
    {
      "compiler": {
        "context": {
          "package": "cli-njk"
      }
    }
    • Array of extensions to load. Similar to using the -E flag
    {
      "compiler": {
        "extensions": [
          "./extended",
          "nunjucks-reactive"
        ]
      }
    }
  • Nunjucks CLI options

    Some other cli options are supported provided its not their alias.

    {
      "compiler": {
        "outDir": "dist"
      }
    }

See https://mozilla.github.io/nunjucks/api.html#configure

Advanced examples

$ njk foo.njk -p src -o dist -O njk.json

Compiles src/foo.njk to dist/foo.html, with njk.json as njk environment options.

$ njk *.njk njk.json -w -r -p src

Compiles and renders all .njk files -- except ones starting with _ -- in the src folder to the current working directory, with njk.json as metadata, and keeps running in the background for files changes.

About

CLI Utility for Nunjucks

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published