A JavaScript implementation of the Apache Velocity template engine.
npm install velocityjs
import { render, parse, Compile } from 'velocityjs';
// Simple rendering
const result = render('Hello $name!', { name: 'World' });
console.log(result); // Output: Hello World!
// With macros
const macros = {
include: (path) => `Included content from ${path}`,
};
const template = '#include("header.vm") Hello $name!';
const rendered = render(template, { name: 'World' }, macros);
render(vm, context, macros)Renders a Velocity template string with the provided context and macros.
Parameters:
vm (string) - Velocity template stringcontext (object) - Data context for template variablesmacros (object) - Custom macro functionsReturns: (string) Rendered output
parse(vm, config, ignorespace)Parses a Velocity template into an AST (Abstract Syntax Tree).
Parameters:
vm (string) - Velocity template stringconfig (object) - Parsing configurationignorespace (boolean) - Whether to ignore whitespace trimmingReturns: (Array) AST nodes
CompileCompiles parsed AST into a renderable template.
import { parse, Compile } from 'velocityjs';
const asts = parse('Hello $name!');
const template = new Compile(asts);
const result = template.render({ name: 'World' });
escape (boolean) - Enable HTML escaping for variables (default: false)unescape (object) - Specify variables to exclude from escapingenv (string) - Set to 'development' to throw errors on null valuesvalueMapper (function) - Custom value transformation for #set directivescustomMethodHandlers (Array) - Custom function behavior implementationsThe context object provides data and methods to your templates:
$user.name$formatDate($date)eval method for dynamic renderingCustom macro functions can be defined for directives like #include:
import { render } from 'velocityjs';
const macros = {
include: (path) => {
// Custom include implementation
return readFile(path);
},
};
#set - Variable assignment#foreach - Loop iteration#if/#else/#elseif - Conditional logic#macro - Template macro definition#break - Loop control#stop - Template execution controlMIT License
Overall
Maintained
Code review
npm
Latest release
Releases this year
95 followers Β· starred Jan 2021
24 followers Β· starred Jan 2021
A JavaScript implementation of the Apache Velocity template engine.
npm install velocityjs
import { render, parse, Compile } from 'velocityjs';
// Simple rendering
const result = render('Hello $name!', { name: 'World' });
console.log(result); // Output: Hello World!
// With macros
const macros = {
include: (path) => `Included content from ${path}`,
};
const template = '#include("header.vm") Hello $name!';
const rendered = render(template, { name: 'World' }, macros);
render(vm, context, macros)Renders a Velocity template string with the provided context and macros.
Parameters:
vm (string) - Velocity template stringcontext (object) - Data context for template variablesmacros (object) - Custom macro functionsReturns: (string) Rendered output
parse(vm, config, ignorespace)Parses a Velocity template into an AST (Abstract Syntax Tree).
Parameters:
vm (string) - Velocity template stringconfig (object) - Parsing configurationignorespace (boolean) - Whether to ignore whitespace trimmingReturns: (Array) AST nodes
CompileCompiles parsed AST into a renderable template.
import { parse, Compile } from 'velocityjs';
const asts = parse('Hello $name!');
const template = new Compile(asts);
const result = template.render({ name: 'World' });
escape (boolean) - Enable HTML escaping for variables (default: false)unescape (object) - Specify variables to exclude from escapingenv (string) - Set to 'development' to throw errors on null valuesvalueMapper (function) - Custom value transformation for #set directivescustomMethodHandlers (Array) - Custom function behavior implementationsThe context object provides data and methods to your templates:
$user.name$formatDate($date)eval method for dynamic renderingCustom macro functions can be defined for directives like #include:
import { render } from 'velocityjs';
const macros = {
include: (path) => {
// Custom include implementation
return readFile(path);
},
};
#set - Variable assignment#foreach - Loop iteration#if/#else/#elseif - Conditional logic#macro - Template macro definition#break - Loop control#stop - Template execution controlMIT License
Overall
Maintained
Code review
npm
Latest release
Releases this year
95 followers Β· starred Jan 2021
24 followers Β· starred Jan 2021