NAME¶
Eliom_content.Html_text - no description
Module¶
Module Eliom_content.Html_text
Documentation¶
Module
Html_text
:
sig end
=== Forms creation ===
=== Links and forms ===
val make_uri :
?absolute:bool -> ?absolute_path:bool
-> ?https:bool -> service:('a, unit, [<
Eliom_service.get_service_kind ], [< Eliom_service.suff ], 'b, unit,
[< Eliom_service.registrable ], 'c) Eliom_service.service
-> ?hostname:string -> ?port:int ->
?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent
] -> ?nl_params:Eliom_parameter.nl_params_set -> 'a ->
string
The function
make_uri service get_params returns the URL of the service
service applied to the GET parameters
get_params . By default
the returned URL is relative to the current request URL but it is absolute
when one of the following conditions is met:
-the optional parameter
~absolute_path is
true .
-the optional parameter
~absolute is
true .
-the optional parameter
~https is
true (resp.
false ) and
the current request protocol is
http (resp.
https ).
-the optional parameter
~https is
true and the function is used
outside of a service handler
-the
service has been created with
~https:true and the current
request protocol is
http .
-the
service has been created with
~https:true and the function is
used outside of a service handler.
When only the first condition is met (
~absolute_path is
true )
the returned URL is just the absolute path, but when any other condition is
satisfied the returned URL is prefixed with
protocol://hostname[:port]
, where:
-
protocol is:
-
https if the
service has been created with
~https:true or
the optional parameter
~https is
true ;
-
http if the optional parameter
~https is
false ;
-the current request protocol if available;
-
http in any other case.
-
hostname is:
-the optional parameter
~hostname if given;
-the attribute
defaulthostname of
<host> tag in
configuration file or the machine hostname if the option
<usedefaulthostname/> is set;
-the
Host http header of the current request if available;
-the attribute
defaulthostname of
<host> tag in
configuration file or the machine hostname in any other case.
7 -
port is:
-the optional parameter
~port if given;
-the attribute
defaulthttpsport (resp.
defaulthttpport ) of
<host> tag in configuration file or
443 (resp. 80) if
protocol is
https (resp.
http ) and the current request
protocol is
http (resp.
https );
-the attribute
defaulthttpsport (resp.
defaulthttpsport ) of
<host> tag in configuration file or
443 (resp. 80) if the
option
<usedefaulthostname/> is set and
protocol is
https (resp.
http );
-the port associated to the
Host http header of the current request if
available;
-the incoming port of the current request if available;
-the attribute
defaulthttpport (resp.
defaulthttpsport ) of
<host> tag in configuration file or
80 (resp.
443 )
in any other case.
If given the optional parameter
~fragment is prefixed by
# and
appended to the URL.
The optional parameter
keep_nl_params allows one to override the
keep_nl_params parameter used when creating the
service , see
Eliom_service.service for a detailled description.
The optional parameter
nl_params allows one to add non localized GET
parameter to the URL. See the eliom manual for more information about .
val make_string_uri :
?absolute:bool -> ?absolute_path:bool
-> ?https:bool -> service:('a, unit, [<
Eliom_service.get_service_kind ], [< Eliom_service.suff ], 'b, unit,
[< Eliom_service.registrable ], 'c) Eliom_service.service
-> ?hostname:string -> ?port:int ->
?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent
] -> ?nl_params:Eliom_parameter.nl_params_set -> 'a ->
string
The function
make_string_uri service get_params returns the URL of the of
the service
service applied to the GET parameters
get_params .
See
Eliom_content.Html_text.make_uri for a detailled description of
optional parameters.
The function
make_string_uri is an alias of
Eliom_uri.make_string_uri .
Warning: The function
make_string_uri should not be called outside of a
service handler, unless one of the following condition is met:
-the optional parameter
~absolute_path is
true .
-the optional parameter
~absolute is
true .
-the optional parameter
~https is
true .
-the
service has been created with
~https:true .
-the
service is an external service.
val uri_of_string :
(unit -> string) -> string
The function
uri_of_string f returns a URI whose content is equivalent to
f () .
For XML tree build with TyXML, like
Eliom_content.Html5 ,
Eliom_content.Xhtml or
Svg.F , the function
f is applied
each time the XML tree is sent to the client (either as page content or as a
marshalled OCaml value). Hence, the function is always evaluated in the
context of a service handler.
For other module, the function
f is immediatly applied.
val make_uri_components :
?absolute:bool ->
?absolute_path:bool -> ?https:bool -> service:('a,
unit, [< Eliom_service.get_service_kind ], [< Eliom_service.suff
], 'b, unit, [< Eliom_service.registrable ], 'c)
Eliom_service.service -> ?hostname:string -> ?port:int
-> ?fragment:string -> ?keep_nl_params:[ `All | `None |
`Persistent ] -> ?nl_params:Eliom_parameter.nl_params_set ->
'a -> string * (string * string) list * string option
The function
make_uri_components service get_params returns the a triplet
(path, get_params, fragment) that is a decomposition of the URL for the
service
service applied to the GET parameters
get_params . By
default the returned
path is relative to the current request URL but it
could be absolute URL in some situation, see
Eliom_content.Html_text.make_uri for more information and a description
of optional parameters.
The function
make_uri_components is an alias for
Eliom_uri.make_uri_components .
Warning: depending on the optional parameters, the function
make_uri_components may not be used outside of a service handler. See
Eliom_content.Html_text.make_string_uri for a detailled description.
val make_post_uri_components :
?absolute:bool ->
?absolute_path:bool -> ?https:bool -> service:('a, 'b,
[< Eliom_service.post_service_kind ], [< Eliom_service.suff ],
'c, 'd, [< Eliom_service.registrable ], 'e) Eliom_service.service
-> ?hostname:string -> ?port:int ->
?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent
] -> ?nl_params:Eliom_parameter.nl_params_set ->
?keep_get_na_params:bool -> 'a -> 'b ->
string * (string * string) list * string option * (string * string)
list
Same a
Eliom_content.Html_text.make_uri_components , but also returns a
list of post parameters.
val a :
?absolute:bool -> ?absolute_path:bool ->
?https:bool -> ?a:string -> service:('a, unit, [<
Eliom_service.get_service_kind ], [< Eliom_service.suff ], 'b, unit,
[< Eliom_service.registrable ], 'c) Eliom_service.service
-> ?hostname:string -> ?port:int ->
?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent
] -> ?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool
-> string -> 'a -> string
The function
a service a_content get_params creates a
<a>
node that link to
service applied to GET parameters
get_params
and whose content is
a_content . By default, the
href attribute
is a relative URL recomputed at each request with
Eliom_content.Html_text.make_uri .
By default, the link is realized such that the client-side Eliom application
keeps running irrespectable of the usage of the link (cf. ).
By contrast, if the optional parameter
~xhr:false is given, the link is
realized as a standard HTML link and clicking it discontinues the Eliom
application. The
~xhr parameter has no effect outside an Eliom
application.
NB that the default value of
~xhr is configurable through <<a_api
project="eliom" subproject="server" | val
Eliom_config.set_default_links_xhr >>
The optional parameter
~a allows one to add extra HTML attributes to the
generated node.
See
Eliom_content.Html_text.make_uri for description of other optional
parameters.
val css_link :
?a:string -> uri:string -> unit -> string
The function
css_link ~uri () creates a
<link> node that
reference a Cascading StyleSheet (CSS).
If the CSS is generated by an Eliom service, use
Eliom_content.Html_text.make_uri to calculate the service URI. If the
CSS is a static file, you may also use
Eliom_service.static_dir or
Eliom_service.external_service to abstract the file with a service.
The optional parameter
~a allows one to add extra HTML attributes to the
generated node.
val js_script :
?a:string -> uri:string -> unit -> string
The function
js_script ~uri () creates a
<script> node that
reference a javascript file.
If the script content is generated by an Eliom service, use
Eliom_content.Html_text.make_uri to calculate the service URI. If it is
a static file, you may also use
Eliom_service.static_dir or
Eliom_service.external_service to abstract the file with a service.
The optional parameter
~a allows one to add extra HTML attributes to the
generated node.
val get_form :
?absolute:bool -> ?absolute_path:bool
-> ?https:bool -> ?a:string -> service:('a,
unit, [< Eliom_service.get_service_kind ], [< Eliom_service.suff
], 'b, 'c, [< Eliom_service.registrable ], 'd) Eliom_service.service
-> ?hostname:string -> ?port:int ->
?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent
] -> ?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool
-> ('b -> string) -> string
The function
post_form service formgen creates a GET
<form>
to
service . The content of the
<form> is generated by the
function
formgen , that takes the names of the service parameters as
parameters. By default, the
action attribute is a relative URL
recomputed at each request with
Eliom_content.Html_text.make_uri .
By default, the form is realized such that the client-side Eliom application
keeps running irrespectable of the usage of the form (cf. ).
By contrast, if the optional parameter
~xhr:false is given, the form is
realized as a standard HTML form and submitting it discontinues the Eliom
application. The
~xhr parameter has no effect outside an Eliom
application.
NB that the default value of
~xhr is configurable through <<a_api
project="eliom" subproject="server" | val
Eliom_config.set_default_links_xhr >>
The optional parameter
~a allows one to add extra HTML attributes to the
generated node.
See
Eliom_content.Html_text.make_uri for description of other optional
parameters.
val lwt_get_form :
?absolute:bool -> ?absolute_path:bool
-> ?https:bool -> ?a:string -> service:('a,
unit, [< Eliom_service.get_service_kind ], [< Eliom_service.suff
], 'b, 'c, [< Eliom_service.registrable ], 'd) Eliom_service.service
-> ?hostname:string -> ?port:int ->
?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent
] -> ?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool
-> ('b -> string Lwt.t) -> string Lwt.t
Same as
Eliom_content.Html_text.get_form but taking a cooperative
function for
<form> content generation.
val post_form :
?absolute:bool -> ?absolute_path:bool
-> ?https:bool -> ?a:string -> service:('a, 'b,
[< Eliom_service.post_service_kind ], [< Eliom_service.suff ],
'c, 'd, [< Eliom_service.registrable ], 'e) Eliom_service.service
-> ?hostname:string -> ?port:int ->
?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent
] -> ?keep_get_na_params:bool ->
?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool -> ('d
-> string) -> 'a -> string
The function
post_form service formgen get_params creates a POST
<form> to
service preapplied to the GET parameters
get_params . The content of the
<form> is generated by the
function
formgen , that takes the names of the service parameters as
parameters. By default, the
action attribute is a relative URL
recomputed at each request with
Eliom_content.Html_text.make_uri .
The optional parameter
~a allows one to add HTML attributes to the
generated node.
See
Eliom_service.post_coservice' for a description of the
~keep_get_na_params optional parameter ; see
Eliom_content.Html_text.get_form for
~xhr and see
Eliom_content.Html_text.make_uri for other optional parameters.
val lwt_post_form :
?absolute:bool -> ?absolute_path:bool
-> ?https:bool -> ?a:string -> service:('a, 'b,
[< Eliom_service.post_service_kind ], [< Eliom_service.suff ],
'c, 'd, [< Eliom_service.registrable ], 'e) Eliom_service.service
-> ?hostname:string -> ?port:int ->
?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent
] -> ?keep_get_na_params:bool ->
?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool -> ('d
-> string Lwt.t) -> 'a -> string Lwt.t
Same as
Eliom_content.Html_text.post_form but taking a cooperative
function for
<form> content generation.
=== Form widgets ===
val int_input :
?a:string -> input_type:string ->
?name:[< int Eliom_parameter.setoneradio ] Eliom_parameter.param_name
-> ?value:int -> unit -> string
Creates an
<input> tag for an integer
val int32_input :
?a:string -> input_type:string ->
?name:[< int32 Eliom_parameter.setoneradio ] Eliom_parameter.param_name
-> ?value:int32 -> unit -> string
Creates an
<input> tag for an integer
val int64_input :
?a:string -> input_type:string ->
?name:[< int64 Eliom_parameter.setoneradio ] Eliom_parameter.param_name
-> ?value:int64 -> unit -> string
Creates an
<input> tag for an integer
val float_input :
?a:string -> input_type:string ->
?name:[< float Eliom_parameter.setoneradio ] Eliom_parameter.param_name
-> ?value:float -> unit -> string
Creates an
<input> tag for a float
val string_input :
?a:string -> input_type:string ->
?name:[< string Eliom_parameter.setoneradio ] Eliom_parameter.param_name
-> ?value:string -> unit -> string
Creates an
<input> tag for a string
val user_type_input :
('a -> string) -> ?a:string
-> input_type:string -> ?name:[< 'a
Eliom_parameter.setoneradio ] Eliom_parameter.param_name ->
?value:'a -> unit -> string
Creates an
<input> tag for a user type
val raw_input :
?a:string -> input_type:string ->
?name:string -> ?value:string -> unit -> string
Creates an untyped
<input> tag. You may use the name you want (for
example to use with
Eliom_parameter.any ).
val file_input :
?a:string -> name:[< Eliom_lib.file_info
Eliom_parameter.setoneradio ] Eliom_parameter.param_name ->
unit -> string
Creates an
<input> tag for sending a file
val image_input :
?a:string -> name:[<
Eliom_parameter.coordinates Eliom_parameter.oneradio ]
Eliom_parameter.param_name -> ?src:string -> unit ->
string
Creates an
<input type="image" name="..."> tag
that sends the coordinates the user clicked on
val int_image_input :
?a:string -> name:[< (int *
Eliom_parameter.coordinates) Eliom_parameter.oneradio ]
Eliom_parameter.param_name -> value:int -> ?src:string ->
unit -> string
Creates an
<input type="image" name="..."
value="..."> tag that sends the coordinates the user clicked
on and a value of type int
val int32_image_input :
?a:string -> name:[< (int32 *
Eliom_parameter.coordinates) Eliom_parameter.oneradio ]
Eliom_parameter.param_name -> value:int32 -> ?src:string ->
unit -> string
Creates an
<input type="image" name="..."
value="..."> tag that sends the coordinates the user clicked
on and a value of type int32
val int64_image_input :
?a:string -> name:[< (int64 *
Eliom_parameter.coordinates) Eliom_parameter.oneradio ]
Eliom_parameter.param_name -> value:int64 -> ?src:string ->
unit -> string
Creates an
<input type="image" name="..."
value="..."> tag that sends the coordinates the user clicked
on and a value of type int64
val float_image_input :
?a:string -> name:[< (float *
Eliom_parameter.coordinates) Eliom_parameter.oneradio ]
Eliom_parameter.param_name -> value:float -> ?src:string ->
unit -> string
Creates an
<input type="image" name="..."
value="..."> tag that sends the coordinates the user clicked
on and a value of type float
val string_image_input :
?a:string -> name:[< (string *
Eliom_parameter.coordinates) Eliom_parameter.oneradio ]
Eliom_parameter.param_name -> value:string -> ?src:string
-> unit -> string
Creates an
<input type="image" name="..."
value="..."> tag that sends the coordinates the user clicked
on and a value of type string
val user_type_image_input :
('a -> string) -> ?a:string
-> name:[< ('a * Eliom_parameter.coordinates)
Eliom_parameter.oneradio ] Eliom_parameter.param_name ->
value:'a -> ?src:string -> unit -> string
Creates an
<input type="image" name="..."
value="..."> tag that sends the coordinates the user clicked
on and a value of user defined type
val raw_image_input :
?a:string -> name:string -> value:string
-> ?src:string -> unit -> string
Creates an
<input type="image" name="..."
value="..."> tag that sends the coordinates the user clicked
on and an untyped value
val bool_checkbox :
?a:string -> ?checked:bool ->
name:[ `One of bool ] Eliom_parameter.param_name -> unit ->
string
Creates a checkbox
<input> tag that will have a boolean value. The
service must declare a
bool parameter.
val int_checkbox :
?a:string -> ?checked:bool ->
name:[ `Set of int ] Eliom_parameter.param_name -> value:int
-> unit -> string
Creates a checkbox
<input> tag that will have an int value. Thus
you can do several checkboxes with the same name (and different values). The
service must declare a parameter of type
set .
val int32_checkbox :
?a:string -> ?checked:bool ->
name:[ `Set of int32 ] Eliom_parameter.param_name -> value:int32
-> unit -> string
Creates a checkbox
<input> tag that will have an int32 value. Thus
you can do several checkboxes with the same name (and different values). The
service must declare a parameter of type
set .
val int64_checkbox :
?a:string -> ?checked:bool ->
name:[ `Set of int64 ] Eliom_parameter.param_name -> value:int64
-> unit -> string
Creates a checkbox
<input> tag that will have an int64 value. Thus
you can do several checkboxes with the same name (and different values). The
service must declare a parameter of type
set .
val float_checkbox :
?a:string -> ?checked:bool ->
name:[ `Set of float ] Eliom_parameter.param_name -> value:float
-> unit -> string
Creates a checkbox
<input> tag that will have a float value. Thus
you can do several checkboxes with the same name (and different values). The
service must declare a parameter of type
set .
val string_checkbox :
?a:string -> ?checked:bool ->
name:[ `Set of string ] Eliom_parameter.param_name ->
value:string -> unit -> string
Creates a checkbox
<input> tag that will have a string value. Thus
you can do several checkboxes with the same name (and different values). The
service must declare a parameter of type
set .
val user_type_checkbox :
('a -> string) -> ?a:string
-> ?checked:bool -> name:[ `Set of 'a ]
Eliom_parameter.param_name -> value:'a -> unit -> string
Creates a checkbox
<input> tag that will have a "user
type" value. Thus you can do several checkboxes with the same name (and
different values). The service must declare a parameter of type
set .
val raw_checkbox :
?a:string -> ?checked:bool -> name:string
-> value:string -> unit -> string
Creates a checkbox
<input> tag with untyped content. Thus you can
do several checkboxes with the same name (and different values). The service
must declare a parameter of type
any .
val string_radio :
?a:string -> ?checked:bool ->
name:[ `Radio of string ] Eliom_parameter.param_name ->
value:string -> unit -> string
Creates a radio
<input> tag with string content
val int_radio :
?a:string -> ?checked:bool ->
name:[ `Radio of int ] Eliom_parameter.param_name -> value:int
-> unit -> string
Creates a radio
<input> tag with int content
val int32_radio :
?a:string -> ?checked:bool ->
name:[ `Radio of int32 ] Eliom_parameter.param_name ->
value:int32 -> unit -> string
Creates a radio
<input> tag with int32 content
val int64_radio :
?a:string -> ?checked:bool ->
name:[ `Radio of int64 ] Eliom_parameter.param_name ->
value:int64 -> unit -> string
Creates a radio
<input> tag with int64 content
val float_radio :
?a:string -> ?checked:bool ->
name:[ `Radio of float ] Eliom_parameter.param_name ->
value:float -> unit -> string
Creates a radio
<input> tag with float content
val user_type_radio :
('a -> string) -> ?a:string
-> ?checked:bool -> name:[ `Radio of 'a ]
Eliom_parameter.param_name -> value:'a -> unit -> string
Creates a radio
<input> tag with user_type content
val raw_radio :
?a:string -> ?checked:bool -> name:string ->
value:string -> unit -> string
Creates a radio
<input> tag with untyped string content (low level)
val string_button :
?a:string -> name:[< string
Eliom_parameter.setone ] Eliom_parameter.param_name -> value:string
-> string -> string
Creates a
<button> tag with string content
val int_button :
?a:string -> name:[< int
Eliom_parameter.setone ] Eliom_parameter.param_name -> value:int
-> string -> string
Creates a
<button> tag with int content
val int32_button :
?a:string -> name:[< int32
Eliom_parameter.setone ] Eliom_parameter.param_name -> value:int32
-> string -> string
Creates a
<button> tag with int32 content
val int64_button :
?a:string -> name:[< int64
Eliom_parameter.setone ] Eliom_parameter.param_name -> value:int64
-> string -> string
Creates a
<button> tag with int64 content
val float_button :
?a:string -> name:[< float
Eliom_parameter.setone ] Eliom_parameter.param_name -> value:float
-> string -> string
Creates a
<button> tag with float content
val user_type_button :
('a -> string) -> ?a:string
-> name:[< 'a Eliom_parameter.setone ] Eliom_parameter.param_name
-> value:'a -> string -> string
Creates a
<button> tag with user_type content
val raw_button :
?a:string -> button_type:string ->
name:string -> value:string -> string -> string
Creates a
<button> tag with untyped string content
val button :
?a:string -> button_type:string -> string ->
string
Creates a
<button> tag with no value. No value is sent.
val textarea :
?a:string -> name:[< string
Eliom_parameter.setoneradio ] Eliom_parameter.param_name ->
?value:string -> unit -> string
Creates a
<textarea> tag
val raw_textarea :
?a:string -> name:string -> ?value:string
-> unit -> string
Creates a
<textarea> tag for untyped form
type 'a soption =
string * 'a * string option * bool
type 'a select_opt =
| Optgroup
of string * string * 'a soption * 'a soption
list
| Option
of 'a soption
The type for
<select> options and groups of options.
-The field of type 'a in
soption is the value that will be sent by the
form.
-If the
pcdata_elt option is not present it is also the value displayed.
-The string in
select_opt is the label
val int_select :
?a:string -> name:[< `One of int ]
Eliom_parameter.param_name -> int select_opt -> int
select_opt list -> string
Creates a
<select> tag for int values.
val int32_select :
?a:string -> name:[< `One of int32 ]
Eliom_parameter.param_name -> int32 select_opt -> int32
select_opt list -> string
Creates a
<select> tag for int32 values.
val int64_select :
?a:string -> name:[< `One of int64 ]
Eliom_parameter.param_name -> int64 select_opt -> int64
select_opt list -> string
Creates a
<select> tag for int64 values.
val float_select :
?a:string -> name:[< `One of float ]
Eliom_parameter.param_name -> float select_opt -> float
select_opt list -> string
Creates a
<select> tag for float values.
val string_select :
?a:string -> name:[< `One of string ]
Eliom_parameter.param_name -> string select_opt -> string
select_opt list -> string
Creates a
<select> tag for string values.
val user_type_select :
('a -> string) -> ?a:string
-> name:[< `One of 'a ] Eliom_parameter.param_name ->
'a select_opt -> 'a select_opt list -> string
Creates a
<select> tag for user type values.
val raw_select :
?a:string -> name:string ->
string select_opt -> string select_opt list -> string
Creates a
<select> tag for any (untyped) value.
val int_multiple_select :
?a:string -> name:[< `Set of
int ] Eliom_parameter.param_name -> int select_opt -> int
select_opt list -> string
Creates a
<select> tag for int values.
val int32_multiple_select :
?a:string -> name:[< `Set of
int32 ] Eliom_parameter.param_name -> int32 select_opt ->
int32 select_opt list -> string
Creates a
<select> tag for int32 values.
val int64_multiple_select :
?a:string -> name:[< `Set of
int64 ] Eliom_parameter.param_name -> int64 select_opt ->
int64 select_opt list -> string
Creates a
<select> tag for int64 values.
val float_multiple_select :
?a:string -> name:[< `Set of
float ] Eliom_parameter.param_name -> float select_opt ->
float select_opt list -> string
Creates a
<select> tag for float values.
val string_multiple_select :
?a:string -> name:[< `Set of
string ] Eliom_parameter.param_name -> string select_opt ->
string select_opt list -> string
Creates a
<select> tag for string values.
val user_type_multiple_select :
('a -> string) ->
?a:string -> name:[< `Set of 'a ] Eliom_parameter.param_name
-> 'a select_opt -> 'a select_opt list -> string
Creates a
<select> tag for user type values.
val raw_multiple_select :
?a:string -> name:string ->
string select_opt -> string select_opt list -> string
Creates a
<select> tag for any (untyped) value.
val a_for :
'a Eliom_parameter.param_name -> string