Freemarker Parser is a javascript implementation of the Freemarker
npm install freemarker-parser


Freemarker Parser is a javascript implementation of the Freemarker (https://freemarker.apache.org).
This project contains experimental version of parser ftl to ast tree
You can install freemarker-parser using npm:
``bash`
$ npm install freemarker-parser --save-dev
Require freemarker-parser inside of your JavaScript:
`ftl
<#assign f=1>
<#if f gt 0>
${f} > 0
<#else>
${f} < 0
#if>
`
`ts
const freemarker = require('freemarker-parser');
const parser = new freemarker.Parser();
const data = parser.parse(template);
console.log(data.ast);
console.log(data.tokens);
`
`ftl
[#assign f=1]
[#if f gt 0]
${f} > 0
[#else]
${f} < 0
[/#if]
`
`ts
const freemarker = require('freemarker-parser');
const parser = new freemarker.Parser();
const data = parser.parse(template, {
useSquareTags: true,
parseLocation: true,
});
console.log(data.ast);
console.log(data.tokens);
`
- interpolations ${foo}${avg(3, 5)}
- methods, i.e. #attempt
- executing macro
- directives https://freemarker.apache.org/docs/ref_directives.html:
- #recover
- #assign
- #global
- #local
- #if
- #elseif
- #else
- #list
- #else
- #break
- #continue
- #items
- #include
- #import
- #macro
- #switch
- #case
- #default
- #break
- #compress
- #function
- #return
- #parse
- - #noparse#stop
- #setting
- #lt
- #t
- #nt
- #rt
- #flush
- #escape
- #noescape
- #autoesc
- #noautoesc
- #outputformat
- #ftl
- <#-- -->
- comments ?toUpperCase
- built-ins:
- ?toLowerCase
- ?capitalize
- ?length
- ?string("yes", "no")
- ${user!"Anonymous"}
- support default values, i.e.
- directives:
- #fallback#nested
- #recurse
- #visit`
-