The Caml2html package provides an executable and a library that highlight OCaml code by adding some color. With the caml2html program, you can produce ready-to-go HTML files such as this one.
You can also use the library in a program that makes web pages. See that:
(* This small program is inserted verbatim in the source code of this web page *) open Printf let rec fac = function 0 -> 1 n -> n * fac (n - 1) let () = for i = 0 to 10 do printf "%i -> %i\n" i (fac i) done
See also this cool example by the authors of MLPost. It embeds arbitrary HTML (requires version > 1.3.0) with images and javascript.
See the help file which comes with the distribution.
Consider a file example.ml
containing the following OCaml code:
(*include disclaimer.html *) let f x = 2 * x + 1
File disclaimer.html
contains this:
Warning, this is a test!
Rendered with caml2html
without using
the -ext
option it gives:
(*include disclaimer.html *) let f x = 2 * x + 1
We can define a custom comment expander that reads the contents
of the comment from stdin and outputs some HTML to stdout.
In our example we want to insert the contents of a file named
disclaimer.html
. This is done by defining a command
associated with "include", as follows:
$ caml2html -ext "include: xargs cat" example.ml
The result is:
let f x = 2 * x + 1
Caml2html was written by Sébastien Ailleret and is now maintained by Martin Jambon (me). It is distributed under a GPL license. Download it here.
The development version of Caml2html is hosted on GitHub.
Caml2html provides LaTeX output since version 1.4.0 (-latex
)
and works very similarly to the default HTML mode. It uses LaTeX packages
alltt
and color
.
To PostScript, HTML, RTF or ANSI terminal: Ocaml support for Enscript (ocaml.st by Janne Hellsten)
To PostScript: Ocaml support for a2ps (ocaml.ssh by Markus Mottl)