I never know what people mean by “heavy”
But yes, I did use the regular tyxml ppx for a while when I first started using dream, and have tried it 2-3 times since. It’s totally fine, the language support is great (again, not a fan of reason as a whole, and ocamllsp sees everything it needs to within the ppx expressions), but editing HTML within strings interleaved with not-strings is really very cumbersome. Doubly so when copy-pasting HTML snippets from e.g. design tools, which then need to be laboriously split into N strings to accommodate the necessary antiquotations, etc.
I think I suggested on discord some weeks back an addition to the ppx to support interpolation of values via some notation within the HTML, e.g. instead of:
let page =
let title = Html.txt "title" in
let eid = "summary" in
[%html "<h1>" [ title ] "</h1><p id=" eid ">content</p>"]
Something like this would IMO yield something at least as pleasant to edit as EML or JSX:
let page =
let title = Html.txt "title" in
let eid = "summary" in
[%html {|<h1>{[title]}</h1><p id={eid}>content</p>|}]
…and then for bonus points, it should be relatively straightforward to convince vscode/merlin to syntax-highlight and format the now-unitary %html
strings. It’s on my TODO list, though tbh I probably won’t be panic-motivated until refmt
breaks (more).