当前位置: 首页 > 软件库 > 程序开发 > 模板引擎 >

wet-template

简易服务器端 WEB 模板引擎
授权协议 MIT
开发语言 JavaScript
所属分类 程序开发、 模板引擎
软件类型 开源软件
地区 国产
投 递 者 纪勇军
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

wet 名称来缩写于 WEb Template

wet 是一个基于 ES6 的简易服务器端 WEB 模板引擎,完全没有第三方依赖。

安装

Github: https://github.com/hyjiacan/wet

Gitee: https://gitee.com/hyjiacan/wet

npm: https://www.npmjs.com/package/@hyjiacan/wet

npm i @hyjiacan/wet

模板用法

wet 模板基于 html 语法,模板语言也与常用的 js 写法一致。

demo.html

<div>
  <ul>
    <t-for on="item of list">
      <li>{{item}}</li>
    </t-for>
    <t-for on="item in set">
      <li>
        {{item.key}}: {{item.value}}
        <t-with xx="item.value.x.y">
          <span>{{xx.z}}</span>
        </t-with>
      </li>
    </t-for>
  </ul>
  <t-if on="visible">
    condition is true
  </t-if>
  <t-else>
    condition is false
  </t-else>
  <t-tree on="treeData as item">
    <div>
      {{item.data}}
      <div>
      	<t-children />    
      </div>
    </div>
  </t-tree>
  <t-include file="../common/footer.html" />
</div>
const context = {
  list: [1, 2, 3],
  set: {
    a: 1,
    b: {
      x: {
        y: {z: 5}
      }
    },
    c: 3
  },
  visible: false
}
wet.render('/path/to/demo.html', context, {cache: true})

通过调用 wet.render(template, context, options?) 执行模板的渲染,此函数会返回渲染后的HTML字符串。

  • template 模板文件,可以是相对路径或绝对路径
  • context 模板的上下文,为模板渲染提供数据。必须是对象,不能是数组
  • options 可选的选项,目前只有一个字段 cache,用于指示是否缓存模板文件。注:此缓存指缓存模板文件的DOM结构,并不是渲染结果

t-for

此标签用于遍历数据集。

for..of 遍历数组

<t-for on="item of array" step="1">
<span>{{item}}</span>
</t-for>

step 是步长,默认为 1

也可以写作

<t-for on="item, index of array">
<span>{{index}}: {{item}}</span>
</t-for>

index 为数组的索引,从 0 开始

另外, for...of 也可以直接根据指定数值进行循环

<t-for on="item of 10">
<span>{{item}}</span>
</t-for>

<t-for on="item of 1-10">
<span>{{item}}</span>
</t-for>

1-10 表示从 1 到 10,当起始位置为 0 时 0-10 ,可以省略为:10。 - 两侧不能有空白。仅支持整数。

范围始终包含边界值,如:

  • 1-10: 1, 2, ..., 9, 10
  • 0-10: 0, 1, ..., 9, 10
  • 10: 0, 1, ..., 9, 10
  • 9: 0, 1, ..., 9

array 暂不支持数组字面量

for..in 遍历集合

<t-for on="item in object">
<span>{{item.key}}: {{item.value}}</span>
</t-for>

也可以写作

<t-for on="value, key in object">
<span>{{item.key}}: {{item.value}}</span>
</t-for>

object 暂不支持对象字面量

t-if

条件分支: <t-if on="condition">condition 应该是一个条件表达式

t-elif

条件分支 <t-elif on="condition">condition 应该是一个条件表达式

t-else

其它条件分支: <t-else>

t-with

设置作用域。

<t-with varName="a.b.c">
  {{varName}}
</t-with>

在此范围内,varName 等于 a.b.c 的值,varName 应该是一个合法的标识符。

此标签一般用于简写层次比较深的对象引用。

t-tree / t-children

渲染树结构

<t-tree on="tree as item">
  <div>{{item.title}}</div>
  <div>{{item.description}}</div>
  <div>
    <t-children />
  </div>
</t-tree>
  • tree 是上下文中的树结构变量,其应该是一个数组(array, 以支持多个根结点)
  • item 是每个节点在此作用域内的变量名称

另外还有一个配合使用的标签 <t-children field="children" />,此标签标记子节点应该渲染的位置

其 field 属性指定了子元素的字段名称,默认值为 children,即当字段名称为 children 时,属性 field 可省略。 t-children 的子元素会被直接丢弃。

t-html

提供直接渲染HTML的方法,当不使用此标签时,表达式的输出会被转义。

例:

<t-html>{{'<p></p>'}}</t-html>,输出 <p></p>

而在不使用 t-html 时: {{'<p></p>'}},输出 &lt;p&gt;&lt;/p&gt;

t-include

包含功能支持 <t-include file="./another.html" />

其属性 file 是一个相对文件路径,相对于当前文件的目录。

在 t-include 下,只允许出现 t-fill 作为其子项。

组合使用 t-include/t-fill/t-hole 可以实现布局模板的功能。

t-hole/t-fill

t-hole 在模板文件中预留 hole,以在模板文件被 include 时进行填充。

a.html

<div>
    <t-hole name="title">
      <div>默认内容</div>
    </t-hole>
    <t-hole></t-hole>
</div>

在上面的模板文件中,定义了两个 hole。一个具名的 title<t-hole name="title">,另一个是匿名的: <t-hole>

不论是具名还是匿名,相同名称只能声明一次。

b.html

<t-include file="a.html">
  <t-fill>填充匿名 hole</t-fill>
  <t-fill name="title">填充具名 hole: title</t-fill>
</t-include>

不论是具名还是匿名,相同名称只能填充一次。

{{}}

表达式支持: {{var}}{{obj.prop.value}}, `{{a - b}}

如果想要原样输出{{/}}符号,那么写作 {!{/}!},此时不会被解析,: {{/}}

 相关资料
  • 本文向大家介绍Java实现简易Web服务器,包括了Java实现简易Web服务器的使用技巧和注意事项,需要的朋友参考一下 众所周知Web服务器与客户端之间的通信是使用HTTP协议的。HTTP是一个客户端和服务器端请求和应答的标准(TCP)。因为HTTP协议是基于TCP协议的,所以我将使用JAVA中的Socket完成这个简易的Web服务器。关于HTTP更详细的资料,各位可以查阅相关资料进行了解。 在服

  • Groovy的模板引擎就像邮件合并一样(从数据库中自动添加名称和地址到字母和信封,以便于向许多地址发送邮件,特别是广告),但它更为通用。 简单的字符串模板 如果你采用下面的简单示例,我们首先定义一个名称变量来保存字符串“Groovy”。 在println语句中,我们使用$ symbol来定义可以插入值的参数或模板。 def name = "Groovy" println "This Tutori

  • 默认情况下,Yii 使用 PHP 作为其默认的模板引擎语言,但是,你可以配置 Yii 以扩展的方式支持其他的渲染引擎, 比如 Twig 或 Smarty等。 组件 view 就是用于渲染视图的。 你可以重新配置这个组件的行为以增加一个自定义的模板引擎。 [ 'components' => [ 'view' => [ 'class' => 'yii\w

  • template模板引入标签 标签: <template/> 作用:引入其他模板 用法示例: <template file="Member/footer.php"/> 参数说明 参数 说明 @file 表示需要应用的模板路径。(这里需要说明的是,只能引入当前主题下的模板文件)(必填) 用法示例 假设主题:Default <template file="Content/header.php"/>

  • 主要内容:Web服务器的工作方式,搭建一个简单的 Web 服务器Go语言里面提供了一个完善的 net/http 包,通过 net/http 包我们可以很方便的搭建一个可以运行的 Web 服务器。同时使用 net/http 包能很简单地对 Web 的路由,静态文件,模版,cookie 等数据进行设置和操作。 Web服务器的工作方式 我们平时浏览网页的时候,会打开浏览器,然后输入网址后就可以显示出想要浏览的内容。这个看似简单的过程背后却隐藏了非常复杂的操作。 对于

  • 本文向大家介绍简单实现Java web服务器,包括了简单实现Java web服务器的使用技巧和注意事项,需要的朋友参考一下 一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现; 一、程序执行步骤  1.创建一个ServerSocket对象;  2.调用ServerSocket对象的accept方法,等待连接,连接成功会