html_of_jsx is a JSX transformation to write HTML declaratively in OCaml, Reason and mlx.
- Brings the component model to HTML
- Supports most of features from JSX (uppercase components, fragments, optional attributes, punning)
- but with a few improvements (lowercase components, no need to add annotations)
- No React idioms (no
className, nohtmlFor, noonChange, etc...) - Integrates well with Htmx
- Type-safe, validates attributes and their types (it can be better thought)
- Works with OCaml, Reason and mlx
- Minimal
JSX.to_stringto render a JSX element to a HTML stringJSX.*to construct DOM Elements and DOM nodes (JSX.string,JSX.int,JSX.null,JSX.list)
- Created to work on the server-side, but can be used on the client-side too (with Melange)
opam install html_of_jsx+ (library html_of_jsx.lib)
+ (preprocess (pps html_of_jsx.ppx))let element = <a href="https://x.com/davesnx">
<span> {"Click me!"} </span>
</a>
let html: string = JSX.to_string(element);Check the demo/server.re file to see a full example.
Check the Documentation to know more about the API and features.
This library was extracted from server-reason-react and later simplified to work only with HTML5.

