package eliom
Install
Dune Dependency
Authors
Maintainers
Sources
md5=c8c67fe5fb8d3f44a3b17cc4a93a0e62
sha512=e58557a1b525efd011e0eb539b112b53e6c012ac3fb2153c251be030eda483dd3b19de625707cf5ffebd97fa6a7fabfb8a6aae8e8a61c79e0bd7ad2d289df9a9
doc/eliom.server/Eliom_content/index.html
Module Eliom_content
Source
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 Xml
). Then, Eliom_content
redefines the two high level interfaces (Svg
, Html
) that are provided by TyXML for valid XML tree creation and printing.
- If you want to generate typed HTML, use
Eliom_content.Html
, - If you want to write untyped html, use
Eliom_content.Html_text
, - If you want to generate typed svg, use
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.
Functional semantics
The F
modules provides functions to create elements with functional semantics: they are standard OCaml values.
Use this module:
- if your application does not have a client-side part (server-side generated Web site)
- or if the client-side is not written with Eliom,
- or if you do not need to use this node from the client-side program (no injection
%n
on this node) and want to avoid the extra attributes added by moduleD
.
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.
DOM semantics
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 <<a_api subproject="client"|module Eliom_content.Html.To_dom>>
and <<a_api subproject="client"|module Eliom_content.Html.Manip>>
.
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.
Client-side value injection
The C
modules provides functions to inject client-side elements and attributes into server-side content.
Please read <<a_manual chapter="clientserver-html"|Eliom's manual>>
to learn how to generate HTML.
Building and pretty-printing valid SVG tree. Information about Svg api can be found at <<a_api project="tyxml" | module Svg_sigs.T >>