/mplate

Render template from command line. Supports multiple engines and is pipeable with your favorites tools!

Primary LanguageJavaScriptMIT LicenseMIT

mplate

Render template from command line. Supports multiple engines and is pipeable with your favorite tools!

Supported template engine

Installation

npm install -g mplate

Usage

Usage: mplate [options]

Template utilities

Options:
  -V, --version                     output the version number
  -f --file <file>                  Template input file. '-' to read from stdin
  -o --output <output>              Output file
  -e --engine <engine>              Template engine (default: "ejs")
  -c --context <context>            Template context for interpolation in JSON (default: "{}")
  --context-file <contextFile>      Load context from file
  --context-format <contextFormat>  Context format (default: "json")
  --use-env                         Merge environment variable in context

Render template to file

./welcome.ejs

Welcome <%= username %>!
mplate --context "{\"username\": \"admin\"}" -f welcome.ejs -o out.txt

Render template from stream

echo "Welcome <%= username %>!" | mplate -f - --context "{\"username\": \"admin\"}"
Welcome admin!

From file server:

curl -s https://example.com/template/location.ejs | mplate -f - --context "{\"username\": \"admin\"}"
Welcome admin!

Use environment variables

echo "User home:<%= USER_HOME %>" | mplate -f - --use-env
User home: ~/user/home

Load context from file

./context.yaml

user:
    name: admin
echo "Welcome <%= user.name %>!" | mplate -f - --context-file context.yaml --context-format yaml
Welcome admin!

Render with a different engine (handlebars)

echo "Welcome {{ username }}!" | mplate -f - --context "{\"username\": \"admin\"}" --engine handlebars
Welcome admin!