Skip to content

Latest commit

 

History

History
74 lines (60 loc) · 1.91 KB

README.md

File metadata and controls

74 lines (60 loc) · 1.91 KB

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!