module Eliom_content:sig
..end
This module allows creating valid HTML content, or other XML formats.
XML tree manipulation within Eliom is based on the TyXML library
but Eliom is using a custom representation for XML values (see
Eliom_content.Xml
). Then, Eliom_content
redefines the two high level
interfaces (Eliom_content.Svg
, Eliom_content.Html
) that are provided by
TyXML for valid XML tree creation and printing.
Eliom_content.Html
,Eliom_content.Html_text
,Eliom_content.Svg
.Modules Eliom_content.Html
, Eliom_content.Svg
contain two
sub-modules: Eliom_content.Html.F
, Eliom_content.Html.D
corresponding to tow different semantics.
They also contain a module Eliom_content.Html.C
that allows to
inject client-side content into server-side content.
The F
modules provides functions to create elements with functional
semantics: they are standard OCaml values.
Use this module:
%n
on this node)
and want to avoid the extra attributes added by module D
.If you use a F
-node n
in an injection (%n
),
it is considered as any OCaml value, NOT precisely the copy you (possibly)
inserted in the page. For example, To_dom.of_element %n
will not refer
to the element in the page, but create a new DOM node.
The D
module provides functions to create elements with DOM semantics:
Firstly, they behave like DOM nodes, e.g. they can only be added once to the
DOM tree even when appended several times.
Secondly, those values have an identifier,
which means they can be referred to
on client side (by %variable
) or used with the functions in
and
.
In case of doubt, always use D
-nodes when you are writing a
client-server Eliom app. You can also mix F-nodes and D-nodes.
The C
modules provides functions to inject client-side elements and attributes
into server-side content.
Please read to learn how to generate HTML.
module Xml:sig
..end
Low-level XML manipulation.
:Xml_sigs.T
with type 'a W.t = 'a Eliom_shared.React.S.t and type 'a W.tlist = 'a Eliom_shared.ReactiveData.RList.t and type event_handler = (Dom_html.event Js.t -> unit) Eliom_client_value.t and type mouse_event_handler = (Dom_html.mouseEvent Js.t -> unit) Eliom_client_value.t and type keyboard_event_handler = (Dom_html.keyboardEvent Js.t -> unit) Eliom_client_value.t and type touch_event_handler = (Dom_html.touchEvent Js.t -> unit) Eliom_client_value.t
module Svg:sig
..end
Building and pretty-printing valid SVG tree.
module Html:sig
..end
Building and printing valid HTML5 tree.