##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
提问有几种方式
新建
issue
邮件到eward.song at gmail.com
阿里内部员工,可以通过hanwen.sah搜到我的旺旺
推荐一下沉鱼写的
velocity
。
##License