1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

新闻 Wit 2.3.0-beta 发布,Java 模板引擎 下载

Discussion in '软件资讯' started by 漂亮的石头, 2017-10-16.

  1. 漂亮的石头

    漂亮的石头 版主 Staff Member

    Joined:
    2012-02-10
    Messages:
    488,064
    Likes Received:
    47
    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 ([​IMG]除了这个, 也没啥亮点了)

    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/v.../test/resources/org/febit/wit/test/tmpls/auto
    Wit 2.3.0-beta 发布,Java 模板引擎下载地址
     
Loading...