dream-html
reason


dream-html | reason | |
---|---|---|
13 | 50 | |
174 | 10,184 | |
4.0% | 0.2% | |
9.2 | 8.8 | |
16 days ago | 3 days ago | |
OCaml | OCaml | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dream-html
- The Future of Htmx
-
Constructing XML output with dream-html
FOR some time now, I have been maintaining an OCaml library called dream-html. This library is primarily intended to render correctly-constructed HTML, SVG, and MathML. Recently, I added the ability to render well-formed XML markup, which has slightly different rules than HTML. For example, in HTML if you want to write an empty div tag, you do:
-
Hypermedia Systems
htmx is a JavaScript library which interprets a set of HTML attributes and JavaScript events. It doesn't have anything to do with static typing. However, it's fairly easy to add a statically-typed layer on top of it eg https://github.com/yawaramin/dream-html
- Dream-HTML – render HTML, SVG, MathML, Htmx markup from OCaml
-
A Response to "Have Single-Page Apps Ruined the Web?"
There is some truth to this. Imho the next level of htmx is unlocked when you componentize everything like a React app...but with nested routes corresponding to nested components like a Remix app...and using an HTML generation DSL embedded directly in your language, so HTML becomes a first-class citizen of your language's constructs, rather than a templated afterthought. I have a demo of this: https://github.com/yawaramin/dream-html/tree/todoapp/app
-
Second-Guessing the Modern Web
Nowadays I highly recommend HTML embedding libraries directly in the programming language. E.g. ScalaTags https://com-lihaoyi.github.io/scalatags/ or (my own) https://github.com/yawaramin/dream-html
Yes, you give up the ability of designers and frontend-only people to easily work with the HTML templates. But in exchange you get quite a lot.
-
That people produce HTML with string templates is telling us something
I found your article very informative and it matches up quite a bit with my own thinking about HTML generation. In fact it looks like we independently arrived at pretty much the same conclusions. A lot of the issues you raise are the impetus behind the way I designed my HTML-generation DSL: https://github.com/yawaramin/dream-html
-
What's the most htmx-ish language for the server side?
I am developing an HTML generation library on top of Dream, to have great support in the language including htmx support: https://yawaramin.github.io/dream-html/dream-html/Dream_html/index.html
- dream-html: Generate HTML markup from your Dream backend server
-
My Thoughts on OCaml
Look at this code which prints out an HTML tag: https://github.com/yawaramin/dream-html/blob/main/lib/dream_...
Initially you might think generating HTML tags from data structures in code should be a simple matter. But there are complexities--some tags are defined as having no child tags, others do. Some tags are purely character data (unstructured text), not structured data. Some are just comments. We need a way to compose multiple tags together into a single 'virtual' tag for flexible HTML generation. All these conditions can be pretty hard to keep track of--unless your compiler does exhaustiveness checking. Then the compiler will tell you if you missed any cases.
In the example above I didn't make any manual effort to cover all the cases, I simple listed out the cases I wanted to handle in order. The compiler made sure that I didn't miss any.
reason
- How Jane Street accidentally built a better build system for OCaml
-
OCaml Syntax Sucks
I wish they would update their blog![0] The last post is from Aug. 2018, which definitely gives the impression that the project is dead.
But it's not dead, if you look at their GitHub.[1]
[0] https://reasonml.github.io/blog/
[1] https://github.com/reasonml/reason
-
Comparing OCaml and Standard ML (2020)
OCaml makes so much sense to me -- it's just a shame that the syntax has some weird decisions.
I wish ReasonML (https://reasonml.github.io/) would come back -- it's a new syntax for the same language, kind of an Elixir/Erlang thing.
-
ReScript has come a long way, maybe it's time to switch from TypeScript?
Ocaml is still a wonderful language if you want to look into it, and Reason is still going strong as an alternate syntax for OCaml. With either OCaml or Reason you can compile to native code, or use the continuation of BuckleScript now called Melange.
- Learning Elm by porting a medium-sized web front end from React (2019)
-
Melange for React devs book, alpha release
Hey HN, at Ahrefs we have been working on an online book that hopefully helps React developers get up and running with Melange, an OCaml to JavaScript compiler. You can read more about Melange here: https://melange.re/.
There are still a few chapters that we'd like to add before considering it "complete", but it might be already helpful for some folks out there, that's why we decided to publish it early.
The book uses Reason syntax to implement React components using ReasonReact components. You can read more about both in:
https://reasonml.github.io/
-
ReScript: Rust like features for JavaScript
ReScript is "Fast, Simple, Fully Typed JavaScript from the Future". What that means is that ReScript has a lightning fast compiler, an easy to learn JS like syntax, strong static types, with amazing features like pattern matching and variant types. Until 2020 it was called "BuckleScript" and is closely related to ReasonML.
- Ask HN: Interest in a Rust-Inspired Language Compiling to JavaScript?
-
Earning the privilege to work on unoriginal problems
This tracks with how I've seen "normal" languages converge on similar, flawed imitations of better type systems through tools and repurposed syntax. Thank you for confirming.
Do you have any recommendations or warnings regarding general languages which reach in the opposite direction? Reason[1] and F#[2] are both examples: they attach pre-existing ecosystems and compile-for-$PLATFORM tools to OCaml-like typing.
OCaml itself is also intriguing for personal projects. However, I'm worried the "GPL" in its standard library's LGPL license might scare people despite both the linking exception and Jane Street's MIT alternative.
1. https://reasonml.github.io/
-
Melange 1.0: Compile OCaml / ReasonML to JavaScript
ReasonML purely as a syntax layer on top of OCaml is still being updated and released[1]. Incidentally, I'm one of the maintainers of that project too :-)
With this Melange release, we're hoping to somewhat revive ReasonML and channel some folks back to the community from the perspective of a vertically integrated platform that has seen major investment in the past few years.
[1]: https://github.com/reasonml/reason
What are some alternatives?
htmlgo - A library for writing type-safe HTML in Golang
rescript - ReScript is a robustly typed language that compiles to efficient and human-readable JavaScript.
litestar - Production-ready, Light, Flexible and Extensible ASGI API framework | Effortlessly Build Performant APIs
melange - A mixture of tooling combined to produce JavaScript from OCaml & Reason
literal-html - Simple and unsafe HTML/XML templates for TypeScript, using tagged template literals
refterm - Reference monospace terminal renderer
template - A simple framework for webapps
js_of_ocaml - Compiler from OCaml to Javascript.
rum - Simple, decomplected, isomorphic HTML UI library for Clojure and ClojureScript
purescript - A strongly-typed language that compiles to JavaScript
typedef
sqlite3-ocaml - OCaml bindings to the SQLite3 database

