Skip to content

briantani/velocity.js

This branch is 161 commits behind shepherdwind/velocity.js:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f2a2d76 · Oct 28, 2015
Sep 3, 2013
Oct 24, 2014
Oct 28, 2015
Oct 28, 2015
Jul 6, 2015
Dec 19, 2014
Jul 6, 2015
May 13, 2015
Dec 8, 2012
Jul 6, 2015
Jun 11, 2015
Oct 24, 2014
Jul 6, 2015
May 13, 2015
Jan 10, 2015
Jul 6, 2015

Repository files navigation

Velocity - Template Engine

Build Status Coverage Status

NPM

velocity.js是velocity模板语法的javascript实现。

##Features

  • 支持客户端和服务器端使用
  • 语法分析和模板渲染分离
  • 基本完全支持velocity语法
  • Vim Syntax

##Install

via npm:

$ npm install velocityjs

##Broswer

兼容支持es5的浏览器,可以通过测试来验证test case

对于低端浏览器需要实现以下方法

  1. Array.prototype的map, forEach, some, filter, every, indexOf
  2. Date.now
  3. Object.keys

##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.barcontext的属性可以是函数,和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

提问有几种方式

  1. 新建issue
  2. 邮件到eward.song at gmail.com
  3. 阿里内部员工,可以通过hanwen.sah搜到我的旺旺

其他

推荐一下沉鱼写的velocity

##License

(The MIT License)

About

velocity for js

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 94.1%
  • Yacc 2.5%
  • Lex 2.0%
  • Other 1.4%