@olton/freemarker
v0.4.0
Published
Freemarker integration for NodeJS.
Readme
@olton/freemarker
Apache FreeMarker® is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data. Templates are written in the FreeMarker Template Language (FTL), which is a simple, specialized language (not a full-blown programming language like PHP). Usually, a general-purpose programming language (like Java) is used to prepare the data (issue database queries, do business calculations). Then, Apache FreeMarker displays that prepared data using templates. In the template you are focusing on how to present the data, and outside the template you are focusing on what data to present.
Freemarker integration for NodeJS
This package is a wrapper for Apache FreeMarker.
This version doesn't include fmpp source, only jar files:
- bsh v2.1.1
- freemarker v2.3.34
- resolver v1.2
- imageinfo v1.9
How to use
JAVA_HOMEshould be set properlynpm i @olton/freemarker -S
Render string
import Freemarker from '@olton/freemarker';
const freemarker = new Freemarker();
freemarker.render('<h1>${title}</h1>', { title: 'test render' }, (err, result) => {
if (err) {
throw new Error(err);
}
console.log(result);
});NOTICE: Don't use #include in string for rendering.
Render file
import Freemarker from '@olton/freemarker';
import { fileURLToPath } from 'url'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
const freemarker = new Freemarker({ root: __dirname, suffix: '.tpl' });
freemarker.renderFile(path.join(__dirname, 'index'), data, (err, result) => {
if (err) {
throw new Error(err);
}
console.log(result);
});In this example, path.join(__dirname, 'index') can be replaced with index or index.tpl because we set root and suffix options.
Test
Node with ESM support is required!
npm test
License
This product is licensed under a MIT license.
Thanks to kaola-fed for original release.
