Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

【模板引擎】node模板引擎终结者:Saker

$
0
0

新写的一款模板引擎,还处于测试阶段,欢迎添砖加瓦~ 至于说为什么是“终结者”,因为个人觉得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欢迎讨论!


Viewing all articles
Browse latest Browse all 14821

Trending Articles