This weekend was spawnfest, a 48 hour BEAM Jam (Erlang, Elixir & other BEAM languages). I created dtu aka Data The Ultimate, a data format that, unlike YAML, allows to define pretty decent programming languages, below some links:
•
•
Full Stack Todo MVC with 4 dialects in a file
•
Format Description
The short version is that it's a data format that makes it easy to define DSLs and translators, I implemented translators for subsets of CSS, HTML, JS and Erlang, enough of each to create a Todo MVC app in a single file, since all "dialects" have the same syntax and share code each one can "enter" another dialect and embed the result in the outer one in the way it makes sense.
For example,
the `style`
node will
render the CSS in the body like here.
The CSS in
the `style`
attribute will
render it inline as a string like here.
Erlang embeds HTML, CSS and JS
inside Erlang as seen here, in this case the content is rendered as a string to be served as a response to a
GET /
request, you can
see the result here.