Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 1 KB

README.md

File metadata and controls

40 lines (28 loc) · 1 KB

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.