velocity.js 是 velocity 模板语法的 javascript 实现。
##Features
##Install
via npm:
$ npm install velocityjs
##Broswer
兼容支持 es5 的浏览器,可以通过测试来验证 test case 。
对于低端浏览器需要实现以下方法
##Examples
在 tests 目录下有大量的例子,node 和浏览器下使用是一致的,另外,examples 目录下有一个 最简单的例子。
##Public API
文件组织通过 CommonJS 方式,对于浏览器,通过 spm 可以打包为 cmd 模块。
var Velocity = require('velocityjs');
//1. 直接解析
Velocity.render('string of velocity', context, macros);
//2. 使用parse和Compile
var Compile = Velocity.Compile;
var asts = Velocity.parse('string of velocity');
new Compile(asts).render(context, macros);
####context
context
是一个对象,可以为空,执行中
$foo.bar
,访问路径是
context.foo.bar
,
context
的属性可以是函数,和 vm 中定义保持一致。
context 中得函数,有一个固定的
eval
方法,可以用来运算 vm 语法字符串,比如 webx 对应的
$control.setTemplate
的
实现
。
##Syntax
具体语法请访问官网文档: velocity user guide 。
###Directives
Directives 支持
set
,
foreach
,
if|else|elseif
,
macro
,
break
。不
支持有,
stop
,
evaluate
,
define
,
parse
。不过可以通过 context 来实现,比如
parse
实现
。
###macro 与 parse
宏分为系统的宏,比如
parse, include
,和用户自定义宏,通过
#macro
在 vm 中定义,此
外可以使用自定义的 js 函数替代在 vm 中定义。对于系统宏和自定义宏,不做区分,对于
#parse
和
#include
的调用,可以使用自定义函数来执行,可以参考测试用例中 self defined macro 部分。
##Questions
提问有几种方式
推荐一下沉鱼写的 velocity 。
##License
(The MIT License)