HTML fragments definition DSL
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
compiler
forest
.gitignore
README.md

README.md

Forest: DSL for defining HTML fragments

Forest is a DSL to define how to represent data in HTML. It can produce JavaScript or Scala computations, thus allowing to render HTML fragments on client side or on server side.

Example of HTML template using forest:

def profile(user: Rep[User]) =
  el('dl)(
    el('dt)("Name"),
    el('dd)(user.name),
    el('dt)("Age"),
    el('dd)(user.age)
  )

Rendering this template will produce a DOM fragment equivalent to the following markup:

<dl>
  <dt>Name</dt>
  <dd>Julien</dd>
  <dt>Age</dt>
  <dd>27</dd>
</dl>

See the tests for more examples.

Setup

First, setup js-scala.

Then, you can build the forest DSL:

Go under the forest/ subdirectory and run sbt. You can check the tests, or publish-local.

You may also be interested in the external DSL layer:

Go under the compiler/ subdirectory and run sbt publish-local.