注意 velocityjs在npm中包名从原来的velocity.js改为velocityjs,感觉require("velocity.js") 比较不好看,所以改名,从0.3.0之后的版本都在velocityjs下更新。 查看最新版本
Velocity.js 是velocity模板语法的javascript实现。Velocity 是基于Java的模板引擎,广泛应用在阿里集 体各个子公司。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含 基本数据类型、变量赋值和函数等功能。Velocity.js 支持 Node.js 和浏览器环境。 最新版下载地址:https://github.com/shepherdwind/velocity.js/zipball/master Features
Installvia npm:
Broswer Support兼容ie6+,chrome等其他浏览器,test case 点击此处可以体验web 端velocity语法解析过程,注:使用ACE作为代码编辑器,仅支持高级浏览器访问。 执行
需要cli下安装coffeejs,暂时打包是为kissy所使用的,velocity.js需要的一些常用的 ecma5功能,比如
Velocity语法具有很高的容错能力,类似于html结构的解析,同时语法规则复杂,所以语法 解释器执行性能可能比较慢, 执行build后,得到两个文件,分别是 把语法分析和模板拼接分开,为了方便在本地编译语法树,减少在web端js运算。本地编译 模板的思路,源自KISSY的xtemplate。 虽然语法解释器可以在浏览器端执行,但是,不推荐那么使用。
源码中 Public APInode_module
context
On Broswer1 . 使用线下打包方案:
2 . 使用线上编译:
两者的区别在于asts的获取,第一种方式,直接取asts,第二种,需要首先执行语法分析过 程。 Syntax具体语法请访问官网文档:velocity user guide。 DirectivesDirectives支持 macro宏分为系统的宏,比如 foreachforeach在velocity中对对象的遍历,和js有区别,java中对象是一个map,需要通过方法
stringvelocity中字符串求值和php类似,双引号字符串里面的变量会被替换变量对应的值,单引 号原样返回,推荐尽量使用单引号,那样性能好一些。此外,双引号中变量替换,没有再次 调用语法分析器,而是使用正则,只支持简单的引用替换,比如 在java中可能大量使用双引号方式,因为java对象无法自动转换类型,双引号做类型转换用, 而在web端,js无此需要。 velocity
HelperHelper提供一些额外的功能,主要用于解决vm数据模拟问题。
jsonify文档issue #11
License(The MIT License) Copyright (c) 2012-2013 Eward Songeward.song@gmail.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
来自: 集微笔记 > 《JavaScript》