# Module Eliom_predefmod

    module Eliom_predefmod: sig .. end

This modules contains predefined modules for generating forms and registering handlers, for several types of pages: XHTML pages typed with polymorphic variants, untyped (text) pages, actions, redirections, files ...

    module type ELIOMSIG = sig .. end

The signature of such modules.

## Module for registering Xhtml pages typed with polymorphic variants using `XHTML.M`

### Creating links and forms

    module type XHTMLFORMSSIG = sig .. end

### Forms and registration functions

    module Xhtml: sig .. end

Eliom forms and service registration functions for XHTML

    module Xhtmlcompact: sig .. end

Eliom forms and service registration functions for XHTML, with compact markup (i.e., without pretty-printing).

### Module to register subpages of type `block`

    module Blocks: sig .. end

Use this module for example for XMLHttpRequests for block tags (e.g.

### Functor to create modules to register subpages for other subtypes of XHTML

    module SubXhtml: functor (T : sigtype content

    end) -> sig .. end

## Untyped pages

    module HtmlText: ELIOMSIG  with
    type page = string
    and type form_content_elt = string
    and type form_content_elt_list = string
    and type form_elt = string
    and type a_content_elt = string
    and type a_content_elt_list = string
    and type a_elt = string
    and type a_elt_list = string
    and type div_content_elt = string
    and type div_content_elt_list = string
    and type uri = string
    and type link_elt = string
    and type script_elt = string
    and type textarea_elt = string
    and type select_elt = string
    and type input_elt = string
    and type pcdata_elt = string
    and type a_attrib_t = string
    and type form_attrib_t = string
    and type input_attrib_t = string
    and type textarea_attrib_t = string
    and type select_attrib_t = string
    and type link_attrib_t = string
    and type script_attrib_t = string
    and type input_type_t = string

Module to create forms and register untyped HTML pages

    module CssText: Eliom_mkreg.ELIOMREGSIG  with type page = string

Module to register untyped CSS pages

    module Text: Eliom_mkreg.ELIOMREGSIG  with type page = string * string

Module to register untyped text pages

## Other kinds of services

    module Action: Eliom_mkreg.ELIOMREGSIG  with
      type page = exn list
      and type options = [ `Reload | `NoReload ]

Actions do not generate any page.

    module Actions: Eliom_mkreg.ELIOMREGSIG  with
      type page = exn list
      and type options = [ `Reload | `NoReload ]

The same, for backwards compatibility

    module Unit: Eliom_mkreg.ELIOMREGSIG  with
      type page = unit

Like actions, but the page is not reloaded.

    module Redirection: Eliom_mkreg.ELIOMREGSIG  with
      type page =
      (unit, unit, Eliom_services.get_service_kind,
       [ `WithoutSuffix ],
       unit, unit, Eliom_services.registrable)
        Eliom_services.service
      and type options = [ `Temporary | `Permanent ]

Allows to create redirections towards another service.

    module String_redirection: Eliom_mkreg.ELIOMREGSIG  with
      type page = XHTML.M.uri
    (*VVV Would be better to define the type uri elsewhere *)
      and type options = [ `Temporary | `Permanent ]

Allows to create redirections towards other URLs.

    module Files: Eliom_mkreg.ELIOMREGSIG  with
      type page = string

Allows to send files.

    module Any: Eliom_mkreg.ELIOMREGSIG  with
      type page = Eliom_services.result_to_send

Allows to create services that choose dynamically what they want to send.

    module Streamlist: Eliom_mkreg.ELIOMREGSIG  with
      type page = (((unit -> string Ocsigen_stream.t Lwt.t) list) *
                     string)

Allows to send raw data using Ocsigen's streams.