Module Netcgi_modtpl

module Netcgi_modtpl: sig .. end
Deprecated.Mod_caml style of templates. This template module is simple to use. It is here to provide a simple upgrade path from mod_caml. It should not be considered as the default template system of Netcgi.

type var = 
| VarString of string (*::tag::*)
| VarTable of table_row list (*::table(tag)::*)
| VarConditional of bool (*::if(tag)::*)
| VarCallback of (string list -> string) (*::call(f, x1,...)::*)
type table_row = (string * var) list 

Variables are either simple string, tables, conditionals or callbacks.

A simple string is set with template#set "name" s where s will be automatically escaped depending on the declaration in the template:

Tables are declared in the template by ::table(name):: row template ::end::. The row template can contain other variables. Calling template#table "name" rows, where rows is a list [row1, row2,...,rowN], will insert N row templates with each template having its variables set thanks to row1,... each of which is an associative list name -> value (of type Template.table_row).

Conditionals are declared in the template by ::if(name) .. ::else:: .. ::end:: with the "else" clause being optional. Calling template#conditional sets up a conditional value.

Calling template#callback "fname" f sets up the callback function declared by ::call(fname,arg1,...,argN):: replacing the call by the value of f applied to the list [arg1,...,argN]. The string returned by f can be escaped by using suffices in the template as for simple tags: ::call(fname,arg1,...,argN)_html::,...

A template may also include other templates with ::include(filename)::.

class template : ?filename:string -> string -> object .. end
new template ?filename tpl computes a new template from the string tpl.
val template : string -> template
Compile the template from a named file. Not thread safe.
val template_from_string : ?filename:string -> string -> template
Compile the template from a literal string. Not thread safe.
val template_from_channel : ?filename:string -> Pervasives.in_channel -> template
Compile the template from a channel. Not thread safe.