package html_of_jsx
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=12c49cb44a7476921d097248540e222cb412cf49a283cc20b92775e2bf2b9c39
sha512=96748d99db49817a900ce2b310d5f496cee5e96ba1c90611d204c397549e55797eb76f0952912bcfd5be17e06cf5029fb85b19417ea47ba4543103eb0536ab55
Description
html_of_jsx is a JSX transformation that allows you to write HTML declaratively.
Published: 27 Jun 2024
README
README.md
Render HTML with JSX
html_of_jsx is a JSX transformation to write HTML declaratively in OCaml, Reason and mlx.
Features
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)
Minimal
JSX.render
to 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 as well (with Melange or jsoo)
Installation
opam install html_of_jsx
+ (library html_of_jsx)
+ (preprocess (pps html_of_jsx.ppx))
Usage
let element: JSX.element = <a href="https://x.com/davesnx">
<span> {"Click me!"} </span>
</a>
let html: string = JSX.render(element);
Check the demo/server.re file to see a full example.
Documentation
Check the Documentation to know more about the API and features.
Credits
This library was extracted from server-reason-react and later simplified to work only with HTML5.
Dev Dependencies (7)
-
tiny_httpd
with-dev-setup
-
ocaml-lsp-server
with-dev-setup
-
ocamlformat
= "0.26.1" & (with-dev-setup | with-test)
-
odoc
with-doc
-
reason
>= "3.10.0" & with-test
-
benchmark
with-test
-
alcotest
with-test
Used by (1)
-
dream
>= "1.0.0~alpha7"
Conflicts
None