Stencil is an open source templating engine that transforms Office Open XML documents (mostly Microsoft
Office's Word .docx
files) from the JVM. It has a simple syntax and no programming is needed to write document templates.
You can use either Microsoft Word or LibreOffice to edit the document templates. The template expressions are just simple textual expressions, and you can even colour-code them to make your template more readable.
- 📄 Multiple Formats: Works with
docx
andpptx
files - 💻 Simple syntax: For value substitution, conditional and repeating blocks
- 🔧 Extendable: Dozens of built-in functions callable from the template
- 📰 Dynamic content: Substituting HTML text for dynamic text formatting
- 🌄 Images and links: Dynamically replace images and links in the template
- 👀 Tables: Show/hide rows and columns in tables
- 📐 Programmable: Offers API for Java and Clojure. Deployable as a Docker container.
- See the Example templates
- Read the Documentation
- Reference the Java API and the Clojure API.
The project has a simple service implementation, which is available on GitHub Packages as a Container image.
Latest stable version is 0.6.1
Latest snapshot version is 0.6.2-SNAPSHOT
Previous versions are available on the Stencil Clojars page.
For Java with Maven
If you are using Maven, add the followings to your pom.xml
:
- The dependency:
<dependency>
<groupId>io.github.erdos</groupId>
<artifactId>stencil-core</artifactId>
<version>0.6.1</version>
</dependency>
- And the Clojars repository:
<repository>
<id>clojars.org</id>
<url>https://repo.clojars.org</url>
</repository>
For Java with Gradle
Add to the dependencies
section of your build.gradle
file: implementation('io.github.erdos/stencil-core:0.6.1')
For Clojure with Leiningen
If you are using Leiningen, add the following to the :dependencies
section of your project.clj
file:
[io.github.erdos/stencil-core "0.6.1"]
For Clojure with deps.edn
Add io.github.erdos/stencil-core {:mvn/version "0.6.1"}
Copyright (c) Janos Erdos. All rights reserved. The use and distribution terms
for this software are covered by the Eclipse Public License 2.0
(https://www.eclipse.org/legal/epl-2.0/) which can be found in the file
LICENSE.txt
at the root of this distribution. By using this software in any
fashion, you are agreeing to be bound by the terms of this license. You must not
remove this notice, or any other, from this software.