package ppx_bsx
Install
Dune Dependency
Authors
Maintainers
Sources
md5=33fdc21684128f6c3570d562d8335918
sha512=3a05e061835e3df1ffba8a728c73aa4bcb5d1e6cbe3f8bdd9357f6e8a0ba796c2bff3bc95cba4da4014325dabf3fdb97323049f22362dbeaf61356206bd3cd37
Description
ReasonReact JSX v3 for OCaml, ReasonReact 0.7+ and BuckleScript 6.0+ required
README
ppx_bsx
OCaml JSX for ReasonReact.
Install
ppx_bsx
depends on ppx_lib
, which means that ppx_bsx
doesn't support bs-platform
5.x, so first step is configuring your project to "bs-platform": "^6.0.1"
.
Install ppx_bsx
with opam
or esy
, and add ppx_bsx
executable to bs-config.json
:
{
"ppx-flags": [
"./_opam/bin/ppx_bsx",
"./node_modules/bs-platform/lib/bsppx.exe -bs-jsx 3"
]
}
Replace ./_opam/bin/ppx_bsx
to actual ppx_bsx
installed path.
Basic Usage
This is how it feel:
[%bsx "
<Container>
<h1>Nice example</h1>
<nav className="(styles "sidebar")">
This is sidebar
</nav>
<div className="(styles "content")">
"{j|这是主内容|j}"
</div>
</Container>
"]
Simple Rules
Break
[%bsx ""]
into[%bsx " "]
and ignore the first and last quotation marks.
When you need OCaml expression, wrap it with double quotation marks, otherwise
For string literal value, just use single quotation marks
For single text node, you don't need to wrap it to
ReasonReact.string
, (surprisedly)<span>Hello, World</span>
or<span>"{j|你好,世界|j}"</span>
is accepted{|你好|}
will be transformed to{j|你好|j}
automatically