【模板引擎】node模板引擎终结者:Saker
发布于 8 年前 作者 eshengsky 4490 次浏览 来自 分享

新写的一款模板引擎,还处于测试阶段,欢迎添砖加瓦~ 至于说为什么是“终结者”,因为个人觉得Saker并没什么太大缺陷,不像别的主流模板引擎那样往往都有这样那样的问题难以服众,比如Pug,反对的会说需要专门学习,设计师传个HTML给我我还得要HTML To Pug,这什么跟什么啊。。比如ejs,看到这<%>的ASP时代的写法就直接pass了。。而Handlebars的无逻辑模板设计,连最简单的 {{#if code === 1 }}都没法写,还得专门搞个啥helper。。。 于是,Saker应运而生~ 先贴段模板代码:

<h2>Name List</h2>
<article>
    @if(code === 1) {
        <ul>
            @{
                data.forEach(function(person) {
                    <li class="@(person.gender === 'female' ? 'pink' : '')">
                        <a href="/details/@person.id">@person.name</a>
                    </li>
                });
            }
        </ul>
    } else {
        <p>Sorry, no data!</p>
    }
</article>

如果你有了解或者就是使用过其他的模板引擎,我相信你应该很容易发现这段模板代码的优点——至少是外在的:

  1. 学习成本低,不像Pug那样完全创造了新的语言;
  2. 结构非常清晰,不像ejs那样各种<%>,与HTML标签的<%>混在一起很难看,而且<%>的前后匹配不符合一般思维,而Saker采用的就是JavaScript语言的小括号和大括号;
  3. 除原始HTML之外的代码量非常少,仅需要 ‘@’,’{’, ‘}’ 等,后端JavaScript和前端HTML可以混写,引擎会智能判断这是js还是HTML
  4. 模板完全支持表达式和复杂逻辑(因为采用的就是JavaScript),相信实际项目中使用过Handlebars的一定有所感触。。。

GitHub地址:https://github.com/eshengsky/saker 欢迎讨论!

4 回复

建议去看看swig,连宏都有,基本上swig就够用了,可惜的是作者不再维护了,但目前的功能用起来没任何缺陷,楼主要是能实现跟swig一样的功能或者更多并长期维护就更好了

@zhengnz 功能是源自需求的,小而简单的东西,能满足需求就好,就一个网页而已,就能有几个人要用到宏呢? 个人看法。。

不要又想搞个大新闻。。动不动就下一代xxxx,xxxx终结者,终极xxx解决方案,你们哪,有一点好,一有点东西比谁发github都快,这样不行的

回到顶部