package markup

  1. Overview
  2. No Docs
Error-recovering functional HTML5 and XML parsers and writers

Install

Dune Dependency

Authors

Maintainers

Sources

1.0.3.tar.gz
sha256=9526fd06a0afc37d7ae6e2528787142d52b124238ffb0e7e8e83bdd383806eb5
md5=3609724f5408dff41b1cb43107bc24ef

Description

Markup.ml provides an HTML parser and an XML parser. The parsers are wrapped in a simple interface: they are functions that transform byte streams to parsing signal streams. Streams can be manipulated in various ways, such as processing by fold, filter, and map, assembly into DOM tree structures, or serialization back to HTML or XML.

Both parsers are based on their respective standards. The HTML parser, in particular, is based on the state machines defined in HTML5.

The parsers are error-recovering by default, and accept fragments. This makes it very easy to get a best-effort parse of some input. The parsers can, however, be easily configured to be strict, and to accept only full documents.

Apart from this, the parsers are streaming (do not build up a document in memory), non-blocking (can be used with threading libraries), lazy (do not consume input unless the signal stream is being read), and process the input in a single pass. They automatically detect the character encoding of the input stream, and convert everything to UTF-8.

Published: 14 Mar 2022

Dependencies (4)

  1. uutf >= "1.0.0"
  2. uchar
  3. ocaml >= "4.03.0"
  4. dune >= "2.7.0"

Dev Dependencies (2)

  1. ounit2 dev
  2. bisect_ppx dev & >= "2.5.0"

Used by (13)

  1. camyll
  2. dream >= "1.0.0~alpha6"
  3. dream-livereload >= "0.2.0"
  4. lambdasoup >= "0.6"
  5. learn-ocaml
  6. markup-lwt
  7. odoc >= "1.4.0" & < "2.1.0"
  8. plist-xml = "0.3.0"
  9. ppx_bsx
  10. soupault >= "1.7.0"
  11. textmate-language >= "0.3.0" & < "0.3.4"
  12. tyxml-ppx
  13. valentine

Conflicts

None

OCaml

Innovation. Community. Security.