Febit Wit 是一个 Java 平台下的模板引擎,语法类似 JavaScript,支持自定义函数,全局变量,Lambda 表达式,核心模块轻巧,无第三方依赖,采用BSD开源协议。 <dependency>
<groupId>org.febit.wit</groupId>
<artifactId>wit-core</artifactId>
<version>2.3.0-beta</version>
</dependency> 发布一下 2.3.0-beta, 按照惯例, 看一{敏感词}积: 332.6KB (除了这个, 也没啥亮点了) 2.3.0-beta 也是新增了一些新特性:
另外还简化了一些地方:
接下来看一下例子: // == 新增: 模板字符串, 目前不支持嵌套哦
var str
var id=9527, name="Mr Tang";
var jobs = {
9527: "Master"
};
str = `awesome\t\n template
${1+2}, ${id}, ${name}, ${jobs[id]}${(()->",")()}
${((name)->{ var map={func:"bala..bala..bala"}; return "nested function: " + name + " - " + map[name]})("func")}
.`
// ParseException: Illegal character '`', not support nesting template string
// str = `${`nested`}.`
// === 增强: map 声明
var map = {
id, // 只提供现有的变量名, 取名作为key, 取值作为值, 等同于 map["id"] = id
name, // 同上, 等同于 等同于 map["name"] = name
nickname: "wit", // 标识符作为 key, 提供的值作为值
1 : "a", // 直接量作为 key
"1": "b", // 同上
'1': "c", // 同上
-1 : "d", // 同上
[ -1-1 ] : "e" // 表达式作为 key, 使用 [] 内的表达式的结果作为key, 等同于 map[-1-1] = "e"
};
// === 简化: 函数声明
// var func = function { .... }
// 上面的示例已经不支持了, 还是乖乖写上括号吧
var func = function () { .... }
// lambda表达式也不错
var func = () -> { .... } 嗯, 就这么多, 后续还砍掉一些废柴特性 |