设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 软件追踪 查看内容

Wit 2.3.0-beta发布,Java模板引擎

2017-10-16 22:58| 发布者: joejoe0332| 查看: 296| 评论: 0|原作者: oschina|来自: oschina

摘要: Febit Wit 是一个Java平台下的模板引擎,语法类似JavaScript,支持自定义函数,全局变量,Lambda表达式,核心模块轻巧,无第三方依赖,采用BSD开源协议。dependency groupIdorg.febit.wit/groupId artifactIdwit-cor ...

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 也是新增了一些新特性:

  • 支持模板字符串 ( ES6 中的 返单引号 )

  • 声明 map 的一些增强

另外还简化了一些地方:

  • 函数声明不再支持省略 function 后面的参数括号

  • import/include 传参不再支持提供一个表达式 (否则这个会和 map 的声明有语义冲突)

  • 还有其他一些使用上无感知的简化(否则怎么可能体积比上个版本还小)

接下来看一下例子:

// == 新增: 模板字符串, 目前不支持嵌套哦
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 = () -> { .... }

嗯, 就这么多, 后续还砍掉一些废柴特性

想看更多示例请移步: https://github.com/febit/wit/tree/v2.2.0-beta/wit-core/src/test/resources/org/febit/wit/test/tmpls/auto


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部