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.
HtmlFlow.doc(System.out).html()// HtmlPage.head().title().text("HtmlFlow").__().__()// head.body().div().attrClass("container").h1().text("My first HtmlFlow page").__().img().attrSrc("http://bit.ly/2MoHwrU").__().p().text("Typesafe is awesome! :-)").__().__()// div.__()// body.__();// html
output  ↴
<html><head><title>HtmlFlow</title></head><body><divclass="container"><h1>My first HtmlFlow page</h1><imgsrc="http://bit.ly/2MoHwrU"><p>Typesafe is awesome! :-)</p></div></body></html>
↖  Flowifier.fromHtml("...")
 
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).