Java DSL for HTML
HtmlFlow is a Java HTML builder to write typesafe HTML documents in a fluent style.
Use one of its view() factory methods to get started with HtmlFlow,
such as the following sample, which produces the HTML on the right side.
Use the utility Flowifier.fromHtml(html) to get the HtmlFlow definition from the
corresponding HTML source code (Flowifier
since the release 3.4).
StaticHtml
.view()
.html()
.head()
.title().text("HtmlFlow").__()
.__() //head
.body()
.div().attrClass("container")
.h1().text("My first page with HtmlFlow").__()
.img().attrSrc("http://bit.ly/2MoHwrU").__()
.p().text("Typesafe is awesome! :-)").__()
.__() //div
.__() //body
.__() //html
.render();
HtmlFlowMy first page with HtmlFlow
Typesafe is awesome! :-)
 
HtmlFlow is the most performant engine among state of the art template
engines like Velocity, Thymleaf, Mustache, etc and also other DSL libraries for HTML.
Check out the performance results in our forks of the most popular benchmarks at
xmlet/template-benchmark
and xmlet/spring-comparing-template-engines.
References
2020,
Text Web Templates Considered Harmful,
Part of the Lecture Notes in Business Information Processing book series
(LNBIP, volume 399). This paper shows how a DSL for HTML (such as HtmlFlow
or Kotlinx.Html) provides unopinionated web templates with boundless
resolving features only ruled by the host programming language (such as
Java, Kotlin or JavaScript).
2019,
HoT: Unleash Web Views with Higher-order Templates,
15th WebIst
conference, 2019, Viena - This paper highlights the compositional nature
of HtmlFlow to compose templates through higher-order functions.
2018,
Domain Specific Language generation based on a XML Schema - Slides of the MsC thesis presentation of Luís Duarte.
2018,
Modern Type-Safe Template Engines - You can find more details in this DZone article about performance comparison.