Awesome
ocaml-mustache
mustache.js logic-less templates in OCaml
Example usage
let tmpl =
try
Mustache.of_string "Hello {{name}}\n\
Mustache is:\n\
{{#qualities}}\
* {{name}}\n\
{{/qualities}}"
with Mustache.Parse_error err ->
Format.eprintf "%a@."
Mustache.pp_template_parse_error err;
exit 3
let json =
`O [ "name", `String "OCaml"
; "qualities", `A [ `O ["name", `String "awesome"]
; `O ["name", `String "simple"]
; `O ["name", `String "fun"]
]
]
let rendered =
try Mustache.render tmpl json
with Mustache.Render_error err ->
Format.eprintf "%a@."
Mustache.pp_render_error err;
exit 2
Supported template language
ocaml-mustache accepts the whole Mustache template language, except:
- it does not support setting delimiter tags to something else than '{{' and '}}'.
- it does not support lambdas inside the provided data
It is automatically tested against the latest mustache specification testsuite.
ocaml-mustache also supports template inheritance / partials with parameters, tested against the semi-official specification.
Todo/Wish List
- Support for ropes