Skip to content

nikochiko/handlebars-ml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

handlebars-ml

Handlebars templating for OCaml.

Installation

Install with opam:

opam install handlebars-ml

CLI usage

opam install handlebars-ml
handlebars-ml -d data.json template.hbs

Optionally, pass a partials directory with -p partials_dir.

Pass the -h (or --help) flag to see all options.

handlebars-ml -h

Library usage

Use Yojson values for passing JSON data as template context.

open Handlebars_ml

let () =
    let data = Yojson.Safe.from_string {| { "name": "World" } |} in
    let template = "Hello, {{name}}!" in
    match Handlebars.compile template data with
    | Ok result -> print_endline result
    | Error err -> prerr_endline ("Error: " ^ err)

Pass get_helper and get_partial functions as named arguments to compile to use custom helpers and partials. Use JSON types for arguments and return values.

open Handlebars_ml

let custom_get_helper name =
    let shout = function
    | [ `String s ] -> Some (`String (String.uppercase_ascii arg))
    | _ -> None
    in
    match name with
    | "shout" -> Some shout
    | _ -> Handlebars.default_get_helper name

let () =
    let data = Yojson.Safe.from_string {| { "name": "World" } |} in
    let template = "Hello, {{shout name}}!" in
    match Handlebars.compile ~get_helper:custom_get_helper template data with
    | Ok result -> print_endline result
    | Error err -> prerr_endline ("Error: " ^ err)

handlebars-ml provides a default_get_helper function in Handlebars_ml that can be used in your custom implementation to still keep the default helpers.

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published