Beard is a logic-less templating engine written in Scala and inspired by Mustache. You can use it out-of-the-box; see the Requirements list below.
What makes Beard powerful:
- Streaming. As soon as you need to render something, you can stream it to the browser. This provides high user-perceived performance.
- Speed. We've benchmarked it against other template engines for the JVM, and Beard performed much faster in terms of rendering time. (We invite you to run your own benchmarks to see if you get the same results.) It also uses ANTLR to make template compilation fast.
- It offers template inheritance.
- Its simple, beautiful syntax. A la Mustache, it uses only the
{
and}
markers for tags and delimiters.
Here's a code snippet to show you how simply Beard can parse templates:
<html>
<head>
<title>{{ the.title }}</title>
</head>
<body>
{{ the.content }}
</body>
</html>
- Scala 2.12 or 2.13
- a package manager like sbt or Maven
If you're using sbt, add this line to your build.sbt file:
libraryDependencies += "de.zalando" %% "beard" % "0.3.1"
resolvers ++= Seq(
"zalando-maven" at "https://dl.bintray.com/zalando/maven"
)
If you're using Maven, run this:
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>bintray-maven</id>
<name>bintray</name>
<url>https://dl.bintray.com/zalando/maven</url>
</repository>
</repositories>
<dependency>
<groupId>de.zalando</groupId>
<artifactId>beard_2.13</artifactId>
<version>0.3.1</version>
</dependency>
Binaries are available from bintray
We've started a Gitbook for additional docs. There, you'll find more information on:
- Basic Usage: rendering an
index
template - Control Flow: If statements and For statements
- Template Inheritance: layout templates and templates-to-be-rendered
- Filters: describes the filters feature
- Quick Reference: with details and code on interpolation, comment statements, block statements, yield statements, and more
You can contribute to this documentation here.
Here is how to run them: sbt "testOnly de.zalando.beard.performance.JadeBenchmark"
We gladly welcome contributions—just submit a pull request with a short note summarizing briefly (1-2 sentences) what you've done. If you'd like to make a substantial contribution to Beard, we could use your help with these items:
- adding filters: ind Handlebars, Angular, Twig, etc.
- providing more meaningful error messages
Copyright 2015 Zalando SE
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.