Skip to content

olton/freemarker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@olton/freemarker

npm package

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_HOME should be set properly
  • npm 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.

About

Freemarker integration for NodeJS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 37.6%
  • Batchfile 32.4%
  • Shell 18.8%
  • FreeMarker 11.2%