Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
module Json : sig ... end
type t =
| String of string
| Escaped of dotted_name
| Section of section
| Unescaped of dotted_name
| Partial of partial
| Inverted_section of section
| Concat of t list
| Comment of string
val parse_lx : Lexing.lexbuf -> t
Read
val of_string : string -> t
val pp : Format.formatter -> t -> unit
pp fmt template
print a template as raw mustache to the formatter fmt
.
val to_formatter : Format.formatter -> t -> unit
Alias for compatibility
val to_string : t -> string
to_string template
uses to_formatter
in order to return a string representing the template as raw mustache.
val render_fmt :
?strict:bool ->
?partials:(name -> t option) ->
Format.formatter ->
t ->
Json.t ->
unit
render_fmt fmt template json
render template
, filling it with data from json
, printing it to formatter fmt
.
For each partial p
, if partials p
is Some t
then the partial is substituted by t
. Otherwise, the partial is substituted by the empty string is strict
is false
. If strict
is true
, the Missing_partial
exception is raised.
render template json
use render_fmt
to render template
with data from json
and returns the resulting string.
val fold :
string:(string -> 'a) ->
section:(inverted:bool -> dotted_name -> 'a -> 'a) ->
escaped:(dotted_name -> 'a) ->
unescaped:(dotted_name -> 'a) ->
partial:(int -> name -> t option Lazy.t -> 'a) ->
comment:(string -> 'a) ->
concat:('a list -> 'a) ->
t ->
'a
fold template
is the composition of f
over parts of template
, called in order of occurrence, where each f
is one of the labelled arguments applied to the corresponding part. The default for f
is the identity function.
expand_partials f template
is template
where for each Partial p
node, p.contents
now evaluates to f p.name
if they were evaluating to None
. Note that no lazy is forced at this point, and calls to f
are delayed until p.contents
is forced.
module Infix : sig ... end
Shortcut for concatening two templates pieces.
val raw : string -> t
<p>This is raw text.</p>
val escaped : dotted_name -> t
{{name}}
val unescaped : dotted_name -> t
{{{name}}}
val inverted_section : dotted_name -> t -> t
{{^person}} {{/person}}
val section : dotted_name -> t -> t
{{#person}} {{/person}}
val comment : string -> t
{{! this is a comment}}
module With_locations : sig ... end
Variant of the t
mustache datatype which includes source-file locations, and associated functions.
val erase_locs : With_locations.t -> t
Erase locations from a mustache value of type With_locations.t
.
val add_dummy_locs : t -> With_locations.t
Add the dummy_loc
location to each node of a mustache value of type t
.