Module Html.D
Creation of HTML content with DOM semantics (referable, see also Eliom_content).
Content creation
See Html_sigs.T. If you want to create an untyped form, you will have to use Eliom_content.Html.F.Raw otherwise, use Eliom form widgets. For more information, see the manual.
See Html_sigs.T.
module Raw : sig ... endtype +'a elt = 'a eltHTML elements.
Element constructors are in section elements. Most elements constructors are either nullary, unary or star, depending on the number of children they accept. Children are usually given as a list of elements. txt is used for text.
div [a [txt "Foo"]] is equivalent to <div><a>foo</a></div>
The type variable 'a is used to track the element's type. This allows the OCaml typechecker to check HTML validity.
For example, div [] is of type [> `Div] elt. The span function only accepts children of type Html_types.span_content. Since `Div is not part of it. span [div []] will not typecheck.
Note that the concrete implementation of this type can vary. See Xml for details.
type doc = Html_types.html eltA complete HTML document.
type +'a attrib = 'a attribHTML attributes
Attribute constructors are in section attributes and their name starts with a_. Attributes are given to elements with the ~a optional argument.
a ~a:[a_href "ocsigen.org"] [txt "link!"] is equivalent to <a href="ocsigen.org">link!</a>
Similarly to elt, attributes use the OCaml type system to enforce HTML validity.
For example a_href returns a value of type [> `Href] attrib. The div function only accepts attributes of type Html_types.div_attrib. Since `Href is not part of it, div ~a:[a_href "ocsigen.org"] [] will not typecheck.
In some cases, attributes have to be disambiguated. The max attribute has two version, a_max and a_input_max, depending on the element. Such disambiguated attribute will contain the name of the associated element.
module Xml :
Xml_sigs.T
with type 'a W.t = 'a Xml.W.t
with type 'a W.tlist = 'a Xml.W.tlist
with type ('a, 'b) W.ft = ('a, 'b) Xml.W.ft
with type uri = Xml.uri
with type event_handler = Xml.event_handler
with type mouse_event_handler = Xml.mouse_event_handler
with type keyboard_event_handler = Xml.keyboard_event_handler
with type touch_event_handler = Xml.touch_event_handler
with type attrib = Xml.attrib
with type elt = Xml.eltUnderlying XML data-structure
type 'a wrap = 'a Xml.W.twrap is a container for elements and values.
In most cases, 'a wrap = 'a. For R modules (in eliom or js_of_ocaml), It will be React.S.t.
type 'a list_wrap = 'a Xml.W.tlistlist_wrap is a container for list of elements.
In most cases, 'a list_wrap = 'a list. For R modules (in eliom or js_of_ocaml), It will be ReactiveData.RList.t.
A nullary element is an element that doesn't have any children.
A unary element is an element that have exactly one children.
A star element is an element that has any number of children, including zero.
module Info : Xml_sigs.InfoVarious information about HTML, such as the doctype, ...
Uri
type uri = Xml.uriAttributes
val a_class : Html_types.nmtokens wrap -> [> `Class ] attribThis attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names.
val a_user_data :
Html_types.nmtoken ->
Html_types.text wrap ->
[> `User_data ] attribMay be used to specify custom attributes. The example given by the W3C is as follows :
<ol> <li data-length="2m11s">Beyond The Sea</li> </ol>
It should be used for preprocessing ends only.
val a_id : Html_types.text wrap -> [> `Id ] attribThis attribute assigns a name to an element. This name must be unique in a document. The text should be without any space.
val a_title : Html_types.text wrap -> [> `Title ] attribThis attribute offers advisory information about the element for which it is set.
Values of the title attribute may be rendered by user agents in a variety of ways. For instance, visual browsers frequently display the title as a tool tip (a short message that appears when the pointing device pauses over an object). Audio user agents may speak the title information in a similar context.
The title attribute has an additional role when used with the link element to designate an external style sheet. Please consult the section on links and style sheets for details.
I18N
val a_xml_lang : Html_types.languagecode wrap -> [> `XML_lang ] attribval a_lang : Html_types.languagecode wrap -> [> `Lang ] attribEvents
Javascript events
val a_onabort : Xml.event_handler -> [> `OnAbort ] attribval a_onafterprint : Xml.event_handler -> [> `OnAfterPrint ] attribval a_onbeforeprint : Xml.event_handler -> [> `OnBeforePrint ] attribval a_onbeforeunload : Xml.event_handler -> [> `OnBeforeUnload ] attribval a_onblur : Xml.event_handler -> [> `OnBlur ] attribval a_oncanplay : Xml.event_handler -> [> `OnCanPlay ] attribval a_oncanplaythrough : Xml.event_handler -> [> `OnCanPlayThrough ] attribval a_onchange : Xml.event_handler -> [> `OnChange ] attribval a_onclose : Xml.event_handler -> [> `OnClose ] attribval a_ondurationchange : Xml.event_handler -> [> `OnDurationChange ] attribval a_onemptied : Xml.event_handler -> [> `OnEmptied ] attribval a_onended : Xml.event_handler -> [> `OnEnded ] attribval a_onerror : Xml.event_handler -> [> `OnError ] attribval a_onfocus : Xml.event_handler -> [> `OnFocus ] attribval a_onformchange : Xml.event_handler -> [> `OnFormChange ] attribval a_onforminput : Xml.event_handler -> [> `OnFormInput ] attribval a_onhashchange : Xml.event_handler -> [> `OnHashChange ] attribval a_oninput : Xml.event_handler -> [> `OnInput ] attribval a_oninvalid : Xml.event_handler -> [> `OnInvalid ] attribval a_onmousewheel : Xml.event_handler -> [> `OnMouseWheel ] attribval a_onoffline : Xml.event_handler -> [> `OnOffLine ] attribval a_ononline : Xml.event_handler -> [> `OnOnLine ] attribval a_onpause : Xml.event_handler -> [> `OnPause ] attribval a_onplay : Xml.event_handler -> [> `OnPlay ] attribval a_onplaying : Xml.event_handler -> [> `OnPlaying ] attribval a_onpagehide : Xml.event_handler -> [> `OnPageHide ] attribval a_onpageshow : Xml.event_handler -> [> `OnPageShow ] attribval a_onpopstate : Xml.event_handler -> [> `OnPopState ] attribval a_onprogress : Xml.event_handler -> [> `OnProgress ] attribval a_onratechange : Xml.event_handler -> [> `OnRateChange ] attribval a_onreadystatechange : Xml.event_handler -> [> `OnReadyStateChange ] attribval a_onredo : Xml.event_handler -> [> `OnRedo ] attribval a_onresize : Xml.event_handler -> [> `OnResize ] attribval a_onscroll : Xml.event_handler -> [> `OnScroll ] attribval a_onseeked : Xml.event_handler -> [> `OnSeeked ] attribval a_onseeking : Xml.event_handler -> [> `OnSeeking ] attribval a_onselect : Xml.event_handler -> [> `OnSelect ] attribval a_onshow : Xml.event_handler -> [> `OnShow ] attribval a_onstalled : Xml.event_handler -> [> `OnStalled ] attribval a_onstorage : Xml.event_handler -> [> `OnStorage ] attribval a_onsubmit : Xml.event_handler -> [> `OnSubmit ] attribval a_onsuspend : Xml.event_handler -> [> `OnSuspend ] attribval a_ontimeupdate : Xml.event_handler -> [> `OnTimeUpdate ] attribval a_onundo : Xml.event_handler -> [> `OnUndo ] attribval a_onunload : Xml.event_handler -> [> `OnUnload ] attribval a_onvolumechange : Xml.event_handler -> [> `OnVolumeChange ] attribval a_onwaiting : Xml.event_handler -> [> `OnWaiting ] attribval a_onload : Xml.event_handler -> [> `OnLoad ] attribval a_onloadeddata : Xml.event_handler -> [> `OnLoadedData ] attribval a_onloadedmetadata : Xml.event_handler -> [> `OnLoadedMetaData ] attribval a_onloadstart : Xml.event_handler -> [> `OnLoadStart ] attribval a_onmessage : Xml.event_handler -> [> `OnMessage ] attribMouse events
val a_onclick : Xml.mouse_event_handler -> [> `OnClick ] attribval a_ondblclick : Xml.mouse_event_handler -> [> `OnDblClick ] attribval a_ondrag : Xml.mouse_event_handler -> [> `OnDrag ] attribval a_ondragend : Xml.mouse_event_handler -> [> `OnDragEnd ] attribval a_ondragenter : Xml.mouse_event_handler -> [> `OnDragEnter ] attribval a_ondragleave : Xml.mouse_event_handler -> [> `OnDragLeave ] attribval a_ondragover : Xml.mouse_event_handler -> [> `OnDragOver ] attribval a_ondragstart : Xml.mouse_event_handler -> [> `OnDragStart ] attribval a_ondrop : Xml.mouse_event_handler -> [> `OnDrop ] attribval a_onmousedown : Xml.mouse_event_handler -> [> `OnMouseDown ] attribval a_onmouseup : Xml.mouse_event_handler -> [> `OnMouseUp ] attribval a_onmouseover : Xml.mouse_event_handler -> [> `OnMouseOver ] attribval a_onmousemove : Xml.mouse_event_handler -> [> `OnMouseMove ] attribval a_onmouseout : Xml.mouse_event_handler -> [> `OnMouseOut ] attribval a_ontouchstart : Xml.touch_event_handler -> [> `OnTouchStart ] attribTouch events
val a_ontouchend : Xml.touch_event_handler -> [> `OnTouchEnd ] attribval a_ontouchmove : Xml.touch_event_handler -> [> `OnTouchMove ] attribval a_ontouchcancel : Xml.touch_event_handler -> [> `OnTouchCancel ] attribKeyboard events
val a_onkeypress : Xml.keyboard_event_handler -> [> `OnKeyPress ] attribval a_onkeydown : Xml.keyboard_event_handler -> [> `OnKeyDown ] attribval a_onkeyup : Xml.keyboard_event_handler -> [> `OnKeyUp ] attribOther attributes
val a_allowfullscreen : unit -> [> `Allowfullscreen ] attribval a_allowpaymentrequest : unit -> [> `Allowpaymentrequest ] attribval a_autocomplete :
Html_types.autocomplete_option wrap ->
[> `Autocomplete ] attribval a_async : unit -> [> `Async ] attribval a_autofocus : unit -> [> `Autofocus ] attribval a_autoplay : unit -> [> `Autoplay ] attribval a_muted : unit -> [> `Muted ] attribval a_challenge : Html_types.text wrap -> [> `Challenge ] attribval a_controls : unit -> [> `Controls ] attribval a_form : Html_types.idref wrap -> [> `Form ] attribval a_formenctype : Html_types.contenttype wrap -> [> `Formenctype ] attribval a_formnovalidate : unit -> [> `Formnovalidate ] attribval a_formtarget : Html_types.text wrap -> [> `Formtarget ] attribval a_high : Html_types.float_number wrap -> [> `High ] attribval a_ismap : unit -> [> `Ismap ] attribval a_keytype : Html_types.text wrap -> [> `Keytype ] attribval a_list : Html_types.idref wrap -> [> `List ] attribval a_loop : unit -> [> `Loop ] attribval a_low : Html_types.float_number wrap -> [> `High ] attribval a_max : Html_types.float_number wrap -> [> `Max ] attribval a_input_max : Html_types.number_or_datetime wrap -> [> `Input_Max ] attribval a_min : Html_types.float_number wrap -> [> `Min ] attribval a_input_min : Html_types.number_or_datetime wrap -> [> `Input_Min ] attribval a_inputmode :
[< `None | `Text | `Decimal | `Numeric | `Tel | `Search | `Email | `Url ]
wrap ->
[> `Inputmode ] attribval a_novalidate : unit -> [> `Novalidate ] attribval a_open : unit -> [> `Open ] attribval a_optimum : Html_types.float_number wrap -> [> `Optimum ] attribval a_pattern : Html_types.text wrap -> [> `Pattern ] attribval a_placeholder : Html_types.text wrap -> [> `Placeholder ] attribval a_pubdate : unit -> [> `Pubdate ] attribval a_radiogroup : Html_types.text wrap -> [> `Radiogroup ] attribval a_referrerpolicy :
Html_types.referrerpolicy wrap ->
[> `Referrerpolicy ] attribval a_required : unit -> [> `Required ] attribval a_reversed : unit -> [> `Reversed ] attribval a_sandbox : [< Html_types.sandbox_token ] list wrap -> [> `Sandbox ] attribval a_scoped : unit -> [> `Scoped ] attribval a_seamless : unit -> [> `Seamless ] attribval a_sizes :
(Html_types.number * Html_types.number) list option wrap ->
[> `Sizes ] attribval a_span : Html_types.number wrap -> [> `Span ] attribval a_srclang : Html_types.nmtoken wrap -> [> `XML_lang ] attribtype image_candidate = [ | `Url of uri| `Url_width of uri * Html_types.number| `Url_pixel of uri * Html_types.float_number
]val a_srcset : image_candidate list wrap -> [> `Srcset ] attribval a_img_sizes : Html_types.text list wrap -> [> `Img_sizes ] attribval a_start : Html_types.number wrap -> [> `Start ] attribval a_step : Html_types.float_number option wrap -> [> `Step ] attribval a_version : Html_types.cdata wrap -> [> `Version ] attribval a_accesskey : Html_types.character wrap -> [> `Accesskey ] attribThis attribute assigns an access key to an element. An access key is a single character from the document character set. NB: authors should consider the input method of the expected reader when specifying an accesskey.
val a_charset : Html_types.charset wrap -> [> `Charset ] attribThis attribute specifies the character encoding of the resource designated by the link. Please consult the section on character encodings for more details.
val a_accept_charset : Html_types.charsets wrap -> [> `Accept_charset ] attribval a_accept : Html_types.contenttypes wrap -> [> `Accept ] attribThis attribute specifies the location of a Web resource, thus defining a link between the current element (the source anchor) and the destination anchor defined by this attribute.
val a_hreflang : Html_types.languagecode wrap -> [> `Hreflang ] attribThis attribute specifies the base language of the resource designated by href and may only be used when href is specified.
val a_rel : Html_types.linktypes wrap -> [> `Rel ] attribThis attribute describes the relationship from the current document to the anchor specified by the href attribute. The value of this attribute is a space-separated list of link types.
This attribute is used to describe a reverse link from the anchor specified by the href attribute to the current document. The value of this attribute is a space-separated list of link types.
val a_tabindex : Html_types.number wrap -> [> `Tabindex ] attribThis attribute specifies the position of the current element in the tabbing order for the current document. This value must be a number between 0 and 32767. User agents should ignore leading zeros.
val a_mime_type : Html_types.contenttype wrap -> [> `Mime_type ] attribThis attribute gives an advisory hint as to the content type of the content available at the link target address. It allows user agents to opt to use a fallback mechanism rather than fetch the content if they are advised that they will get content in a content type they do not support.Authors who use this attribute take responsibility to manage the risk that it may become inconsistent with the content available at the link target address.
val a_datetime : Html_types.cdata wrap -> [> `Datetime ] attribThis attribute specifies a form processing agent. User agent behavior for a value other than an HTTP URI is undefined.
val a_checked : unit -> [> `Checked ] attribWhen the type attribute has the value "radio" or "checkbox", this boolean attribute specifies that the button is on. User agents must ignore this attribute for other control types.
val a_cols : Html_types.number wrap -> [> `Cols ] attribThis attribute specifies the visible width in average character widths. Users should be able to enter longer lines than this, so user agents should provide some means to scroll through the contents of the control when the contents extend beyond the visible area. User agents may wrap visible text lines to keep long lines visible without the need for scrolling.
val a_enctype : Html_types.contenttype wrap -> [> `Enctype ] attribval a_label_for : Html_types.idref wrap -> [> `Label_for ] attribval a_for : Html_types.idref wrap -> [> `Label_for ] attribval a_output_for : Html_types.idrefs wrap -> [> `Output_for ] attribval a_for_list : Html_types.idrefs wrap -> [> `Output_for ] attribval a_maxlength : Html_types.number wrap -> [> `Maxlength ] attribval a_minlength : Html_types.number wrap -> [> `Minlength ] attribval a_multiple : unit -> [> `Multiple ] attribval a_name : Html_types.text wrap -> [> `Name ] attribThis attribute assigns the control name.
val a_rows : Html_types.number wrap -> [> `Rows ] attribThis attribute specifies the number of visible text lines. Users should be able to enter more lines than this, so user agents should provide some means to scroll through the contents of the control when the contents extend beyond the visible area.
val a_selected : unit -> [> `Selected ] attribWhen set, this boolean attribute specifies that this option is pre-selected.
val a_size : Html_types.number wrap -> [> `Size ] attribval a_text_value : Html_types.text wrap -> [> `Text_Value ] attribThis attribute specifies the initial value of the control. If this attribute is not set, the initial value is set to the contents of the option element.
val a_int_value : Html_types.number wrap -> [> `Int_Value ] attribval a_value : Html_types.cdata wrap -> [> `Value ] attribval a_float_value : Html_types.float_number wrap -> [> `Float_Value ] attribval a_disabled : unit -> [> `Disabled ] attribval a_readonly : unit -> [> `ReadOnly ] attribval a_script_type : Html_types.script_type wrap -> [> `Script_type ] attribval a_label : Html_types.text wrap -> [> `Label ] attribval a_axis : Html_types.cdata wrap -> [> `Axis ] attribval a_colspan : Html_types.number wrap -> [> `Colspan ] attribval a_headers : Html_types.idrefs wrap -> [> `Headers ] attribval a_rowspan : Html_types.number wrap -> [> `Rowspan ] attribval a_summary : Html_types.text wrap -> [> `Summary ] attribval a_border : Html_types.pixels wrap -> [> `Border ] attribval a_char : Html_types.character wrap -> [> `Char ] attribval a_alt : Html_types.text wrap -> [> `Alt ] attribval a_height : Html_types.number wrap -> [> `Height ] attribval a_width : Html_types.number wrap -> [> `Width ] attribtype shape = [ | `Rect| `Circle| `Poly| `Default
]val a_coords : Html_types.numbers wrap -> [> `Coords ] attribval a_usemap : Html_types.idref wrap -> [> `Usemap ] attribval a_codetype : Html_types.contenttype wrap -> [> `Codetype ] attribval a_marginheight : Html_types.pixels wrap -> [> `Marginheight ] attribval a_marginwidth : Html_types.pixels wrap -> [> `Marginwidth ] attribval a_target : Html_types.frametarget wrap -> [> `Target ] attribval a_content : Html_types.text wrap -> [> `Content ] attribval a_http_equiv : Html_types.text wrap -> [> `Http_equiv ] attribval a_defer : unit -> [> `Defer ] attribval a_media : Html_types.mediadesc wrap -> [> `Media ] attribARIA support
WAI-ARIA is a specification written by the W3C, defining a set of additional HTML attributes that can be applied to elements to provide additional semantics and improve accessibility wherever it is lacking.
See for example a WAI-ARIA tutorial.
Basic support for WAI-ARIA attributes: a_aria "foo" corresponds to an "aria-foo" attribute.
Elements
val txt : string wrap -> [> Html_types.txt ] eltval html :
?a:Html_types.html_attrib attrib list ->
[< Html_types.head ] elt wrap ->
[< Html_types.body ] elt wrap ->
[> Html_types.html ] eltval head :
?a:Html_types.head_attrib attrib list ->
[< Html_types.title ] elt wrap ->
Html_types.head_content_fun elt list_wrap ->
[> Html_types.head ] eltval base : ([< Html_types.base_attrib ], [> Html_types.base ]) nullaryval title :
(Html_types.title_attrib,
[< Html_types.title_content_fun ],
[> Html_types.title ])
unaryval body :
([< Html_types.body_attrib ],
[< Html_types.body_content_fun ],
[> Html_types.body ])
starval svg :
?a:[< Html_types.svg_attrib ] Svg.attrib list ->
[< Html_types.svg_content ] Svg.elt list_wrap ->
[> Html_types.svg ] eltSection
val header :
([< Html_types.header_attrib ],
[< Html_types.header_content_fun ],
[> Html_types.header ])
starval section :
([< Html_types.section_attrib ],
[< Html_types.section_content_fun ],
[> Html_types.section ])
starval h1 :
([< Html_types.h1_attrib ],
[< Html_types.h1_content_fun ],
[> Html_types.h1 ])
starval h2 :
([< Html_types.h2_attrib ],
[< Html_types.h2_content_fun ],
[> Html_types.h2 ])
starval h3 :
([< Html_types.h3_attrib ],
[< Html_types.h3_content_fun ],
[> Html_types.h3 ])
starval h4 :
([< Html_types.h4_attrib ],
[< Html_types.h4_content_fun ],
[> Html_types.h4 ])
starval h5 :
([< Html_types.h5_attrib ],
[< Html_types.h5_content_fun ],
[> Html_types.h5 ])
starval h6 :
([< Html_types.h6_attrib ],
[< Html_types.h6_content_fun ],
[> Html_types.h6 ])
starval hgroup :
([< Html_types.hgroup_attrib ],
[< Html_types.hgroup_content_fun ],
[> Html_types.hgroup ])
starval address :
([< Html_types.address_attrib ],
[< Html_types.address_content_fun ],
[> Html_types.address ])
starval article :
([< Html_types.article_attrib ],
[< Html_types.article_content_fun ],
[> Html_types.article ])
starval aside :
([< Html_types.aside_attrib ],
[< Html_types.aside_content_fun ],
[> Html_types.aside ])
starval main :
([< Html_types.main_attrib ],
[< Html_types.main_content_fun ],
[> Html_types.main ])
starGrouping content
val p :
([< Html_types.p_attrib ], [< Html_types.p_content_fun ], [> Html_types.p ])
starval pre :
([< Html_types.pre_attrib ],
[< Html_types.pre_content_fun ],
[> Html_types.pre ])
starval blockquote :
([< Html_types.blockquote_attrib ],
[< Html_types.blockquote_content_fun ],
[> Html_types.blockquote ])
starval dialog :
([< Html_types.dialog_attrib ],
[< Html_types.dialog_content_fun ],
[> Html_types.dialog ])
starval div :
([< Html_types.div_attrib ],
[< Html_types.div_content_fun ],
[> Html_types.div ])
starval dl :
([< Html_types.dl_attrib ],
[< Html_types.dl_content_fun ],
[> Html_types.dl ])
starval ol :
([< Html_types.ol_attrib ],
[< Html_types.ol_content_fun ],
[> Html_types.ol ])
starval ul :
([< Html_types.ul_attrib ],
[< Html_types.ul_content_fun ],
[> Html_types.ul ])
starval dd :
([< Html_types.dd_attrib ],
[< Html_types.dd_content_fun ],
[> Html_types.dd ])
starval dt :
([< Html_types.dt_attrib ],
[< Html_types.dt_content_fun ],
[> Html_types.dt ])
starval li :
([< Html_types.li_attrib ],
[< Html_types.li_content_fun ],
[> Html_types.li ])
starval figcaption :
([< Html_types.figcaption_attrib ],
[< Html_types.figcaption_content_fun ],
[> Html_types.figcaption ])
starval figure :
?figcaption:
[ `Top of [< Html_types.figcaption ] elt wrap
| `Bottom of [< Html_types.figcaption ] elt wrap ] ->
([< Html_types.figure_attrib ],
[< Html_types.figure_content_fun ],
[> Html_types.figure ])
starval hr : ([< Html_types.hr_attrib ], [> Html_types.hr ]) nullarySemantic
val b :
([< Html_types.b_attrib ], [< Html_types.b_content_fun ], [> Html_types.b ])
starval i :
([< Html_types.i_attrib ], [< Html_types.i_content_fun ], [> Html_types.i ])
starval u :
([< Html_types.u_attrib ], [< Html_types.u_content_fun ], [> Html_types.u ])
starval small :
([< Html_types.small_attrib ],
[< Html_types.small_content_fun ],
[> Html_types.small ])
starval sub :
([< Html_types.sub_attrib ],
[< Html_types.sub_content_fun ],
[> Html_types.sub ])
starval sup :
([< Html_types.sup_attrib ],
[< Html_types.sup_content_fun ],
[> Html_types.sup ])
starval mark :
([< Html_types.mark_attrib ],
[< Html_types.mark_content_fun ],
[> Html_types.mark ])
starval wbr : ([< Html_types.wbr_attrib ], [> Html_types.wbr ]) nullaryval bdo :
dir:[< `Ltr | `Rtl ] wrap ->
([< Html_types.bdo_attrib ],
[< Html_types.bdo_content_fun ],
[> Html_types.bdo ])
starval abbr :
([< Html_types.abbr_attrib ],
[< Html_types.abbr_content_fun ],
[> Html_types.abbr ])
starval br : ([< Html_types.br_attrib ], [> Html_types.br ]) nullaryval cite :
([< Html_types.cite_attrib ],
[< Html_types.cite_content_fun ],
[> Html_types.cite ])
starval code :
([< Html_types.code_attrib ],
[< Html_types.code_content_fun ],
[> Html_types.code ])
starval dfn :
([< Html_types.dfn_attrib ],
[< Html_types.dfn_content_fun ],
[> Html_types.dfn ])
starval em :
([< Html_types.em_attrib ],
[< Html_types.em_content_fun ],
[> Html_types.em ])
starval kbd :
([< Html_types.kbd_attrib ],
[< Html_types.kbd_content_fun ],
[> Html_types.kbd ])
starval q :
([< Html_types.q_attrib ], [< Html_types.q_content_fun ], [> Html_types.q ])
starval samp :
([< Html_types.samp_attrib ],
[< Html_types.samp_content_fun ],
[> Html_types.samp ])
starval span :
([< Html_types.span_attrib ],
[< Html_types.span_content_fun ],
[> Html_types.span ])
starval strong :
([< Html_types.strong_attrib ],
[< Html_types.strong_content_fun ],
[> Html_types.strong ])
starval time :
([< Html_types.time_attrib ],
[< Html_types.time_content_fun ],
[> Html_types.time ])
starval var :
([< Html_types.var_attrib ],
[< Html_types.var_content_fun ],
[> Html_types.var ])
starHypertext
Edit
val del : ([< Html_types.del_attrib ], 'a, [> 'a Html_types.del ]) starval ins : ([< Html_types.ins_attrib ], 'a, [> 'a Html_types.ins ]) starEmbedded
val img :
src:Xml.uri wrap ->
alt:Html_types.text wrap ->
([< Html_types.img_attrib ], [> Html_types.img ]) nullaryval picture :
img:[< Html_types.img ] elt wrap ->
([< Html_types.picture_attrib ],
[< Html_types.picture_content_fun ],
[> Html_types.picture ])
starval iframe :
([< Html_types.iframe_attrib ],
[< Html_types.iframe_content_fun ],
[> Html_types.iframe ])
starval object_ :
?params:[< Html_types.param ] elt list_wrap ->
([< Html_types.object__attrib ], 'a, [> `Object of 'a ]) starval param : ([< Html_types.param_attrib ], [> Html_types.param ]) nullaryval embed : ([< Html_types.embed_attrib ], [> Html_types.embed ]) nullaryval audio :
?src:Xml.uri wrap ->
?srcs:[< Html_types.source ] elt list_wrap ->
([< Html_types.audio_attrib ], 'a, [> 'a Html_types.audio ]) starval video :
?src:Xml.uri wrap ->
?srcs:[< Html_types.source ] elt list_wrap ->
([< Html_types.video_attrib ], 'a, [> 'a Html_types.video ]) starval canvas :
([< Html_types.canvas_attrib ], 'a, [> 'a Html_types.canvas ]) starval source : ([< Html_types.source_attrib ], [> Html_types.source ]) nullaryval area :
alt:Html_types.text wrap ->
([< Html_types.common
| `Alt
| `Coords
| `Shape
| `Target
| `Rel
| `Media
| `Hreflang
| `Mime_type ],
[> Html_types.area ])
nullaryval map : ([< Html_types.map_attrib ], 'a, [> 'a Html_types.map ]) starTables Data
val caption :
([< Html_types.caption_attrib ],
[< Html_types.caption_content_fun ],
[> Html_types.caption ])
starval table :
?caption:[< Html_types.caption ] elt wrap ->
?columns:[< Html_types.colgroup ] elt list_wrap ->
?thead:[< Html_types.thead ] elt wrap ->
?tfoot:[< Html_types.tfoot ] elt wrap ->
([< Html_types.table_attrib ],
[< Html_types.table_content_fun ],
[> Html_types.table ])
starval tablex :
?caption:[< Html_types.caption ] elt wrap ->
?columns:[< Html_types.colgroup ] elt list_wrap ->
?thead:[< Html_types.thead ] elt wrap ->
?tfoot:[< Html_types.tfoot ] elt wrap ->
([< Html_types.tablex_attrib ],
[< Html_types.tablex_content_fun ],
[> Html_types.tablex ])
starval colgroup :
([< Html_types.colgroup_attrib ],
[< Html_types.colgroup_content_fun ],
[> Html_types.colgroup ])
starval col : ([< Html_types.col_attrib ], [> Html_types.col ]) nullaryval thead :
([< Html_types.thead_attrib ],
[< Html_types.thead_content_fun ],
[> Html_types.thead ])
starval tbody :
([< Html_types.tbody_attrib ],
[< Html_types.tbody_content_fun ],
[> Html_types.tbody ])
starval tfoot :
([< Html_types.tfoot_attrib ],
[< Html_types.tfoot_content_fun ],
[> Html_types.tfoot ])
starval td :
([< Html_types.td_attrib ],
[< Html_types.td_content_fun ],
[> Html_types.td ])
starval th :
([< Html_types.th_attrib ],
[< Html_types.th_content_fun ],
[> Html_types.th ])
starval tr :
([< Html_types.tr_attrib ],
[< Html_types.tr_content_fun ],
[> Html_types.tr ])
starForms
val form :
([< Html_types.form_attrib ],
[< Html_types.form_content_fun ],
[> Html_types.form ])
starval fieldset :
?legend:[< Html_types.legend ] elt wrap ->
([< Html_types.fieldset_attrib ],
[< Html_types.fieldset_content_fun ],
[> Html_types.fieldset ])
starval legend :
([< Html_types.legend_attrib ],
[< Html_types.legend_content_fun ],
[> Html_types.legend ])
starval label :
([< Html_types.label_attrib ],
[< Html_types.label_content_fun ],
[> Html_types.label ])
starLabel authorizes only one control inside them that should be labelled with a for attribute (although it is not necessary). Such constraints are not currently enforced by the type-system
val input : ([< Html_types.input_attrib ], [> Html_types.input ]) nullaryval button :
([< Html_types.button_attrib ],
[< Html_types.button_content_fun ],
[> Html_types.button ])
starval select :
([< Html_types.select_attrib ],
[< Html_types.select_content_fun ],
[> Html_types.select ])
starval datalist :
?children:
[< `Options of [< Html_types.selectoption ] elt list_wrap
| `Phras of [< Html_types.phrasing ] elt list_wrap ] ->
([< Html_types.datalist_attrib ], [> Html_types.datalist ]) nullaryval optgroup :
label:Html_types.text wrap ->
([< Html_types.optgroup_attrib ],
[< Html_types.optgroup_content_fun ],
[> Html_types.optgroup ])
starval option :
([< Html_types.option_attrib ],
[< Html_types.option_content_fun ],
[> Html_types.selectoption ])
unaryval textarea :
([< Html_types.textarea_attrib ],
[< Html_types.textarea_content_fun ],
[> Html_types.textarea ])
unaryval keygen : ([< Html_types.keygen_attrib ], [> Html_types.keygen ]) nullaryval progress :
([< Html_types.progress_attrib ],
[< Html_types.progress_content_fun ],
[> Html_types.progress ])
starval meter :
([< Html_types.meter_attrib ],
[< Html_types.meter_content_fun ],
[> Html_types.meter ])
starval output_elt :
([< Html_types.output_elt_attrib ],
[< Html_types.output_elt_content_fun ],
[> Html_types.output_elt ])
starData
val entity : string -> [> Html_types.txt ] eltentity "foo" is the HTML entity &foo;. Both numerical and named form are allowed.
val space : unit -> [> Html_types.txt ] eltval cdata : string -> [> Html_types.txt ] eltval cdata_script : string -> [> Html_types.txt ] eltval cdata_style : string -> [> Html_types.txt ] eltInteractive
val details :
[< Html_types.summary ] elt wrap ->
([< Html_types.details_attrib ],
[< Html_types.details_content_fun ],
[> Html_types.details ])
starval summary :
([< Html_types.summary_attrib ],
[< Html_types.summary_content_fun ],
[> Html_types.summary ])
starval command :
label:Html_types.text wrap ->
([< Html_types.command_attrib ], [> Html_types.command ]) nullaryScripting
val script :
([< Html_types.script_attrib ],
[< Html_types.script_content_fun ],
[> Html_types.script ])
unaryval noscript :
([< Html_types.noscript_attrib ],
[< Html_types.noscript_content_fun ],
[> Html_types.noscript ])
starval template :
([< Html_types.template_attrib ],
[< Html_types.template_content_fun ],
[> Html_types.template ])
starval meta : ([< Html_types.meta_attrib ], [> Html_types.meta ]) nullaryStyle Sheets
val style :
([< Html_types.style_attrib ],
[< Html_types.style_content_fun ],
[> Html_types.style ])
starval link :
rel:Html_types.linktypes wrap ->
href:Xml.uri wrap ->
([< Html_types.link_attrib ], [> Html_types.link ]) nullaryRuby
val rt :
([< Html_types.rt_attrib ],
[< Html_types.rt_content_fun ],
[> Html_types.rt ])
starval rp :
([< Html_types.rp_attrib ],
[< Html_types.rp_content_fun ],
[> Html_types.rp ])
starval ruby :
([< Html_types.ruby_attrib ],
[< Html_types.ruby_content_fun ],
[> Html_types.ruby ])
starDeprecated
val pcdata : string wrap -> [> Html_types.pcdata ] eltConversion with untyped representation
WARNING: These functions do not ensure HTML or SVG validity! You should always explicitly given an appropriate type to the output.
val of_seq : Xml_stream.signal Seq.t -> 'a elt list_wrapimport signal converts the given XML signal into Tyxml elements. It can be used with HTML and SVG parsing libraries, such as Markup.
val to_xmlattribs : 'a attrib list -> Xml.attrib listval to_attrib : Xml.attrib -> 'a attribmodule Unsafe : sig ... endUnsafe features.
include Eliom_content_sigs.LINKS_AND_FORMS
with type +'a elt := 'a elt
and type +'a attrib := 'a attrib
and type uri := uri
and type ('a, 'b, 'c) star := ('a, 'b, 'c) star
and type 'a form_param := 'a form_param
type ('a, 'b, 'c) lazy_star =
?a:'a attrib list ->
'b elt list Eliom_lazy.request ->
'c eltval lazy_form :
([< Html_types.form_attrib ],
[< Html_types.form_content_fun ],
[> Html_types.form ])
lazy_starinclude Eliom_form_sigs.LINKS
with type +'a elt := 'a elt
and type +'a attrib := 'a attrib
and type uri := uri
val make_uri :
?absolute:bool ->
?absolute_path:bool ->
?https:bool ->
service:
('get, unit, Eliom_service.get, _, _, _, _, _, _, unit, _) Eliom_service.t ->
?hostname:string ->
?port:int ->
?fragment:string ->
?keep_nl_params:[ `All | `Persistent | `None ] ->
?nl_params:Eliom_parameter.nl_params_set ->
'get ->
uriThe 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_pathistrue. - the optional parameter
~absoluteistrue. - the optional parameter
~httpsistrue(resp.false) and the current request protocol ishttp(resp.https). - the optional parameter
~httpsistrueand the function is used outside of a service handler - the
servicehas been created with~https:trueand the current request protocol ishttp. - the
servicehas been created with~https:trueand 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:
protocolis:httpsif theservicehas been created with~https:trueor the optional parameter~httpsistrue;httpif the optional parameter~httpsisfalse;- the current request protocol if available;
httpin any other case.
hostnameis:- the optional parameter
~hostnameif given; - the attribute
defaulthostnameof<host>tag in configuration file or the machine hostname if the option<usedefaulthostname/>is set; - the
Hosthttp header of the current request if available; - the attribute
defaulthostnameof<host>tag in configuration file or the machine hostname in any other case.
- the optional parameter
portis:- the optional parameter
~portif given; - the attribute
defaulthttpsport(resp.defaulthttpport) of<host>tag in configuration file or443(resp. 80) ifprotocolishttps(resp.http) and the current request protocol ishttp(resp.https); - the attribute
defaulthttpsport(resp.defaulthttpsport) of<host>tag in configuration file or443(resp. 80) if the option<usedefaulthostname/>is set andprotocolishttps(resp.http); - the port associated to the
Hosthttp 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 or80(resp.443) in any other case.
- the optional parameter
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.create for a detailed 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 non localized parameters.
val uri_of_string : (unit -> string) -> uriThe function uri_of_string f returns a URI whose content is equivalent to f ().
For XML tree build with TyXML, like Html 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 immediately applied.
val css_link :
?a:[< Html_types.link_attrib ] attrib list ->
uri:uri ->
unit ->
[> Html_types.link ] eltThe function css_link ~uri () creates a <link> node that reference a Cascading StyleSheet (CSS).
If the CSS is generated by an Eliom service, use 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.extern 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:[< Html_types.script_attrib ] attrib list ->
uri:uri ->
unit ->
[> Html_types.script ] eltThe function js_script ~uri () creates a <script> node that reference a javascript file.
If the script content is generated by an Eliom service, use make_uri to calculate the service URI. If it is a static file, you may also use Eliom_service.static_dir or Eliom_service.extern to abstract the file with a service.
The optional parameter ~a allows one to add extra HTML attributes to the generated node.
val a :
?absolute:bool ->
?absolute_path:bool ->
?https:bool ->
?a:[< Html_types.a_attrib ] attrib list ->
service:
('get,
unit,
Eliom_service.get,
_,
_,
_,
_,
_,
_,
unit,
Eliom_service.non_ocaml)
Eliom_service.t ->
?hostname:string ->
?port:int ->
?fragment:string ->
?keep_nl_params:[ `All | `Persistent | `None ] ->
?nl_params:Eliom_parameter.nl_params_set ->
?xhr:bool ->
'a elt list ->
'get ->
[> 'a Html_types.a ] eltThe 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 make_uri.
By default, the link is implemented in a way that allows the client-side Eliom application to keep running, irrespectable of the usage of the link (cf. Eliom_client.change_page).
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. The default value of ~xhr is configurable through Eliom_config.set_default_links_xhr.
The optional parameter ~a allows one to add extra HTML attributes to the generated node.
See make_uri for description of other optional parameters.
To create a <a> node that is not associated to a service, use Raw.a.
module Form :
Eliom_form_sigs.S
with type +'a elt := 'a elt
and type +'a attrib := 'a attrib
and type uri := uri
and type 'a param = 'a form_param