jwerle / mush

Mustache templates for bash

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mush

Mustache templates for bash

install

With bpkg:

$ bpkg install -g jwerle/mush

From source:

$ make install

usage

Suppose you have a template file:

./template.ms

VAR={{VAR}}

You can compile it like such:

$ cat ./template.ms | VAR=VALUE mush
VAR=123

You can utilize stdin in the same way with echo

echo "Today's date is {{DATE}}" | DATE=`date +%D` mush
Today's date is 12/17/13

Variables are passed to the view environment variable definition. Due to the way variables are scoped to the templates. All environment variables are available to the template. This includes variables like $HOME and $USER

Compile a HTML file with partial:

index.html.ms (layout)

<!doctype html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>{{title}}</title>
    <link rel="stylesheet" href="{{main_css}}" type="text/css" />
    <script type="text/javascript" src="{{main_js}}" charset="utf-8"></script>
  </head>
  <body>
    <div id="app">
      {{content}}
    </div>
   </body>
</html>

page.html.ms (partial)

<div id="{{name}}" class="page"> This is the {{name}} page </div>
$ cat index.html.ms | \
  title="Awesome Web Site" \
  main_css="/css/main.css" \
  main_js="/js/main.js" \
  content="`cat page.html.ms | name=home mush`" \
  mush

This will yield:

<!doctype html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>foo</title>
    <link rel="stylesheet" href="/css/main.css" type="text/css" />
    <script type="text/javascript" src="/js/app.js" charset="utf-8"></script>
  </head>
  <body>
    <div id="app">
      <div id="home" class="page"> This is the home page </div>
    </div>
  </body>
</html>

api

usage: mush [-ehV] [-f <file>] [-o <file>]

examples:
  $ cat file.ms | FOO=BAR mush
  $ VALUE=123 mush -f file.ms -o file
  $ echo "Today's date is {{DATE}}" | DATE=`date +%D` mush
  $ cat ./template.ms | VAR=VALUE mush

options:
  -f, --file <file>       file to parse
  -o, --out <file>        output file
  -e, --escape            escapes html html entities
  -h, --help              display this message
  -V, --version           output version

license

MIT

About

Mustache templates for bash

License:MIT License


Languages

Language:Shell 60.0%Language:Roff 33.6%Language:Makefile 4.0%Language:MAXScript 2.4%