Package Exports
- amplify-velocity-template
- amplify-velocity-template/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (amplify-velocity-template) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Velocity - Template Engine
Velocityjs is velocity template engine for javascript.
Features
- Supports both client and server side usage.
- Separation of parsing and rendering templates.
- The basic syntax is fully supported all java version velocity.
- Vim Syntax for vim.
Install
via npm:
$ npm install velocityjsBrowser
Compatible with all modern browsers. You can try test case in your browser to test it.
For other lower version browsers, you need have those polyfill functions:
- Array.prototype map, forEach, some, filter, every, indexOf
- Date.now
- Object.keys
Examples
You can find a lot of examples in the tests directory. There are no differences between using a browser and a node.js environment.
Public API
{
// render method
render(vm: string, context?: Object, macros?: Object): string;
parse(vm: string, config?: Object, ignorespace?: boolean): Array<Ast>;
Compile: {
(asts: Array<Ast>, config?: Object): {
render(context?: Object, macros?: Object);
};
};
}render
params:
- vm {string} velocity string input
- context {object} render context, data or function for vm
- macros {object} such as
#include('path/xxx'), you can define youincludemacro function
var Velocity = require('velocityjs');
Velocity.render('string of velocity', context, macros);context
context is an object or undefined, for vm $foo.bar, data look up path will be context.foo.bar.
context can have method, and call it just on velocity string.
The context will have eval method on this of inner method body. You can eval to rerender velocity string as shown in this example: $control.setTemplate.
Compile and parse
parse method can parse vm, and return ast tree of velocity.
Compile will render asts to result string.
var Compile = Velocity.Compile;
var asts = Velocity.parse('string of velocity');
(new Compile(asts)).render(context, macros);Compile
params:
- asts {array} array of vm asts tree
- config {object} you can define some option for Compile
config
- escape {boolean} default
true, default escape variable to html encode, you can set false to close it. - unescape {object} define the object, which key do not need escape. For example, set unescape equal
{control: true}, so$control.htmlwill not escape. - env {string} when env equal
developmentwill throw error when null values are used - valueMapper {function} this config allow us to redefine the
#setvalue, @see https://github.com/shepherdwind/velocity.js/pull/105
parse
params:
- vm {string} string to parse
- blocks {object} self define blocks, such as
#cms(1) hello #end, you can set{cms: true} - ignorespace {boolean} if set true, then ignore the newline trim.
Syntax
Syntax you can find from velocity user guide。
Directives
Directives supports have set, foreach, if|else|elseif, macro, break, stop, return.
Some other directives such as evaluate, define, parse are not supported by default, but they can be used via context or macros, for example parse
Questions
You can find help from those ways:
- New issue
- Email to eward.song at gmail.com
- 阿里内部员工,可以通过 hanwen.sah 搜到我的旺旺
Other
Recommend an other velocity.
License
(The MIT License)