| CARVIEW |
mustache-haskell: Straight implementation of mustache templates
Downloads
- mustache-haskell-0.1.0.5.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5 |
|---|---|
| Dependencies | aeson, base (>=4.7 && <4.8), bytestring, directory, mustache-haskell, optparse-applicative (>=0.11.0 && <0.12.0), parsec, pretty-show, scientific (>=0.3.0.0 && <0.4.0.0), text, transformers, unordered-containers, vector [details] |
| License | MIT |
| Author | Daniel Choi |
| Maintainer | dhchoi@gmail.com |
| Uploaded | by DanielChoi at 2014-12-11T20:26:21Z |
| Category | Text |
| Home page | https://github.com/danchoi/mustache-haskell |
| Distributions | |
| Reverse Dependencies | 1 direct, 0 indirect [details] |
| Executables | mus |
| Downloads | 4116 total (20 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs uploaded by user [build log] All reported builds failed as of 2014-12-11 [all 2 reports] |
Readme for mustache-haskell-0.1.0.5
[back to package description]mustache-haskell
A Haskell implementation of mustache templates. Expects input data to be JSON.
Should be compatible with the the mustache specification. Except lambdas are not supported.
Supported syntax:
- basic variables
- sections
- inverted sections
- comments (are suppressed)
- partials
- set delimiter
This project currently only provides a command line interface. Later versions will provide a library API for templating ToJSON instances.
Install
You need the Haskell platform on your system.
cabal install mustache-haskell
Or alternatively
git clone git@github.com:danchoi/mustache-haskell.git
cd mustache-haskell
cabal sandbox init
cabal install
# Now copy .cabal-sandbox/bin/mus to your PATH
Usage
mus template.mustache < input.json
mus
Usage: mus [-c] [-d TEMPLATE_DIRECTORY] TEMPLATE_FILE
A Haskell implementation of Mustache templates. On STDIN provide the JSON to
insert into the template.
Available options:
-h,--help Show this help text
-c Just output parse tree of template file
-d TEMPLATE_DIRECTORY Template directory
List separator syntax
mustache-haskell adds one additional feature to the mustache specification. If you are outputing elements of a list, you can designate an optional list separator with the following syntax:
{{#hobbies, }}{{name}}{{/hobbies}}
This designates ", " as the list separator and will output
sewing, brewing, cooking
when the input is
{"hobbies":[{"name":"sewing"},{"name":"brewing"},{"name":"cooking"}]}
Performance
In a few informal tests,
mus template.mustache < input.json
is about 10x faster than the Ruby mustache gem command-line implementation,
mustache - template.mustache < input.json
Related projects
- whiskers Mustache templates with Template Haskell (reddit)
- hastache Haskell implementation of Mustache templates
- mustache2hs takes in Haskell records (single data constructor only) and a list of mustache template and record name pairs, and generates Haskell code for functions that take an escape function and one of the records
- mustache.go an implementation of the mustache template language in Go