# artTemplate-3.0
新一代 javascript 模板引擎
## 目录
* [特性](#特性)
* [快速上手](#快速上手)
* [模板语法](#模板语法)
* [下载](#下载)
* [方法](#方法)
* [NodeJS](#nodejs)
* [使用预编译](#使用预编译)
* [更新日志](#更新日志)
* [授权协议](#授权协议)
## 特性
1. 性能卓越,执行速度通常是 Mustache 与 tmpl 的 20 多倍([性能测试](http://aui.github.com/artTemplate/test/test-speed.html))
2. 支持运行时调试,可精确定位异常模板所在语句([演示](http://aui.github.io/artTemplate/demo/debug.html))
3. 对 NodeJS Express 友好支持
4. 安全,默认对输出进行转义、在沙箱中运行编译后的代码(Node版本可以安全执行用户上传的模板)
5. 支持``include``语句,可在浏览器端实现按路径加载模板
6. 支持预编译,可将模板转换成为非常精简的 js 文件
7. 模板语句简洁,无需前缀引用数据
8. 支持所有流行的浏览器
## 快速上手
### 编写模板
使用一个``type="text/html"``的``script``标签存放模板:
<script id="test" type="text/html">
<h1>{{title}}</h1>
<ul>
{{each list as value i}}
<li>索引 {{i + 1}} :{{value}}</li>
{{/each}}
</ul>
</script>
### 渲染模板
var data = {
title: '标签',
list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
};
var html = template('test', data);
document.getElementById('content').innerHTML = html;
[演示](http://aui.github.com/artTemplate/demo/basic.html)
## 模板语法
有两个版本的模板语法可以选择。
### 简洁语法
推荐使用,语法简单实用,利于读写。
{{if admin}}
{{include 'admin_content'}}
{{each list}}
<div>{{$index}}. {{$value.user}}</div>
{{/each}}
{{/if}}
[查看语法与演示](https://github.com/aui/artTemplate/wiki/syntax:simple)
### 原生语法
<%if (admin){%>
<%include('admin_content')%>
<%for (var i=0;i<list.length;i++) {%>
<div><%=i%>. <%=list[i].user%></div>
<%}%>
<%}%>
[查看语法与演示](https://github.com/aui/artTemplate/wiki/syntax:native)
## 下载
* [template.js](https://raw.github.com/aui/artTemplate/master/dist/template.js) *(简洁语法版, 2.7kb)*
* [template-native.js](https://raw.github.com/aui/artTemplate/master/dist/template-native.js) *(原生语法版, 2.3kb)*
## 方法
### template(id, data)
根据 id 渲染模板。内部会根据``document.getElementById(id)``查找模板。
如果没有 data 参数,那么将返回一渲染函数。
### template.``compile``(source, options)
将返回一个渲染函数。[演示](http://aui.github.com/artTemplate/demo/compile.html)
### template.``render``(source, options)
将返回渲染结果。
### template.``helper``(name, callback)
添加辅助方法。
例如时间格式器:[演示](http://aui.github.com/artTemplate/demo/helper.html)
### template.``config``(name, value)
更改引擎的默认配置。
字段 | 类型 | 默认值| 说明
------------ | ------------- | ------------ | ------------
openTag | String | ``'{{'`` | 逻辑语法开始标签
closeTag | String | ``"}}"`` | 逻辑语法结束标签
escape | Boolean | ``true`` | 是否编码输出 HTML 字符
cache | Boolean | ``true`` | 是否开启缓存(依赖 options 的 filename 字段)
compress | Boolean | ``false`` | 是否压缩 HTML 多余空白字符
## 使用预编译
可突破浏览器限制,让前端模板拥有后端模板一样的同步“文件”加载能力:
一、**按文件与目录组织模板**
```
template('tpl/home/main', data)
```
二、**模板支持引入子模板**
{{include '../public/header'}}
### 基于预编译:
* 可将模板转换成为非常精简的 js 文件(不依赖引擎)
* 使用同步模板加载接口
* 支持多种 js 模块输出:AMD、CMD、CommonJS
* 支持作为 GruntJS 插件构建
* 前端模板可共享给 NodeJS 执行
* 自动压缩打包模板
预编译工具:[TmodJS](http://github.com/aui/tmodjs/)
## NodeJS
### 安装
npm install art-template -g
### 使用
var template = require('art-template');
var data = {list: ["aui", "test"]};
var html = template(__dirname + '/index/main', data);
### 配置
NodeJS 版本新增了如下默认配置:
字段 | 类型 | 默认值| 说明
------------ | ------------- | ------------ | ------------
path | String | ``''`` | 指定模板目录
extname | String | ``'.html'`` | 指定模板后缀名
encoding | String | ``'utf-8'`` | 指定模板编码
配置``path``指定模板目录可以缩短模板的路径,并且能够避免``include``语句越级访问任意路径引发安全隐患,例如:
template.config('path', __dirname);
var html = template('index/main', data)
### NodeJS + Express
app.register('.html', require('art-template'));
> 若使用 js 原生语法作为模板语法,请改用 ``require('art-template/node/template-native.js')``
## 升级参考
为了适配 NodeJS express,artTemplate v3.0.0 接口有调整。
### 接口变更
1. 默认使用简洁语法
2. ``template.render()``方法的第一个参数不再是 id,而是模板字符串
3. 使用新的配置接口``template.config()``并且字段名有修改
4. ``template.compile()``方法不支持 id 参数
5. helper 方法不再强制原文输出,是否编码取决于模板语句
6. ``template.helpers`` 中的``$string``、``$escape``、``$each``已迁移到``template.utils``中
### 升级方法
1. 如果想继续使用 js 原生语法作为模板语言,请使用 [template-native.js](https://raw.github.com/aui/artTemplate/master/dist/template-native.js)
2. 查找项目```template.render```替换为```template```
3. 使用``template.config(name, value)``来替换以前的配置
## 更新日志
### v3.0.0
1. 提供 NodeJS 专属版本,支持使用路径加载模板,并且模板的``include``语句也支持相对路径
2. 适配 [express](http://expressjs.com) 框架
3. 内置``print``语句支持传入多个参数
4. 支持全局缓存配置
5. 简洁语法版支持管道风格的 helper 调用,例如:``{{time | dateFormat:'yyyy年 MM月 dd日 hh:mm:ss'}}``
当前版本接口有调整,请阅读 [升级参考](#升级参考)
> artTemplate 预编译工具 [TmodJS](https://github.com/aui/tmodjs) 已更新
### v2.0.4
1. 修复低版本安卓浏览器编译后可能产生语法错误的问题(因为此版本浏览器 js 引擎存在 BUG)
### v2.0.3
1. 优化辅助方法性能
2. NodeJS 用户可以通过 npm 获取 artTemplate:``$ npm install art-template -g``
3. 不转义输出语句推荐使用``<%=#value%>``(兼容 v2.0.3 版本之前使用的``<%==value%>``),而简版语法则可以使用``{{#value}}``
4. 提供简版语法的合并版本 dist/[template-simple.js](https://raw.github.com/aui/artTemplate/master/dist/template-simple.js)
### v2.0.2
1. 优化自定义语法扩展,减少体积
2. [重要]为了最大化兼容第三方库,自定义语法扩展默认界定符修改为``{{``与``}}``。
3. 修复合并工具的BUG [#25](https://github.com/aui/artTemplate/issues/25)
4. 公开了内部缓存,可以通过``template.cache``访问到编译后的函数
5. 公开了辅助方法缓存,可以通过``template.helpers``访问到
6. 优化了调试信息
### v2.0.1
1. 修复模板变量静态分析的[BUG](https://github.com/aui/artTemplate/pull/22)
### v2.0 release
1. ~~编译工具更名为 atc,成为 artTemplate 的子项目单独维护:<https://github.com/cdc-im/atc>~~
### v2.0 beta5
1. 修复编译工具可能存在重复依赖的问题。感谢 @warmhug
2. 修复预编译``include``内部实现可能产生上下文不一致的问题。感谢 @warmhug
3. 编译工具支持使用拖拽文件进行单独编译
### v2.0 beta4
1. 修复编译工具在压缩模板可能导致 HTML 意外截断的问题。感谢 @warmhug
2. 完善编译工具对``include``支持支持,可�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
java版本phpmyadmin,java数据库管理,web版数据库维护。 本系统使用JAVA开发,采用稳定通用的springMVC +JDBC架构,实现基于WEB方式对数据库进行维护。 功能包括:数据库的展示,库表的展示,表字段结构的展示, SQL语句的在线编辑批量执行,表结构的在线设计维护,数据的在线编辑维护,查询语句保存,SQL语法帮助,在线数据源选择配置等。 系统内置14套UI皮肤,45套代码编辑区UI方案,使用中可以依个人喜好选择配色方案。 本系统不但稳定,实用,功能强大,交互友好,而且还很好玩,可自由组合各种色彩,让维护数据库成为一件舒心的事情。 功能介绍: 1、在SQL编辑区可直接编辑语句,对数据库进行操作维护。支持多语句批量执行,支持选择执行,支持关键字高亮提示,支持多结果展示。 2、选择左侧库表后,将直接查询表数据,并展示出来。可通过新增、编辑、删除按钮对表数据进行维护。也可直接双击行,进行数据编辑,操作十分方便。 3、通过点击“设计”按钮,将切换到表结构设计页,您可以方便的增加、修改、删除表字段,调整字段顺序,设置主键,设置非空等操作。 4、当你编辑了许多SQL语句后,可点击”SQL保存”按钮,保存自己的劳动成果,通过右侧“我的SQL”列表,可查询到保存记录。 5、系统内置14套UI皮肤,45套代码编辑区UI方案, 可自由设置组合,深色的屏幕有助保护视力。 福州青格软件
资源推荐
资源详情
资源评论
收起资源包目录
TreeSoft数据库管理系统 (3842个子文件)
jquery.easyui.min.js.bak 325KB
WdatePicker.js.bak 9KB
PermissionController.class 32KB
PermissionDao.class 21KB
DBUtil2.class 10KB
PermissionService.class 10KB
Reflections.class 8KB
Page.class 6KB
PropertyFilter.class 5KB
ServletUtils.class 5KB
DBUtil.class 5KB
LoginController.class 4KB
StringUtils.class 4KB
SecurityCodeServlet.class 4KB
PropertiesLoader.class 4KB
DateUtils.class 4KB
BaseController.class 3KB
CommonInterceptor.class 3KB
ConvertUtils.class 3KB
Encodes.class 3KB
Digests.class 3KB
IdsDto.class 2KB
SessionListener.class 2KB
PropertyFilter$PropertyType.class 2KB
ScheduleJob.class 2KB
AjaxFilter.class 2KB
Config.class 2KB
Exceptions.class 2KB
Global.class 1KB
PropertyFilter$MatchType.class 1KB
StringEscapeEditor.class 1KB
BaseController$1.class 1KB
DataDto.class 1KB
BaseController$3.class 1KB
Constants.class 947B
BaseController$2.class 933B
UsernamePasswordCaptchaToken.class 931B
TempDto.class 909B
SqlDto.class 546B
icon-all.css 305KB
icon-all.min.css 299KB
icon-standard.css 107KB
icon-metro.css 84KB
easyui.css 49KB
easyui.css 48KB
easyui.css 48KB
easyui.css 48KB
easyui.css 48KB
easyui.css 48KB
easyui.css 47KB
easyui.css 45KB
easyui.css 45KB
easyui.css 45KB
easyui.css 45KB
easyui.css 45KB
easyui.css 45KB
easyui.css 44KB
ambiance.css 26KB
icon-dortmund.css 20KB
icon-cologne.css 20KB
icon-hamburg.css 19KB
icon-berlin.css 19KB
icon-munich.css 19KB
icon-woocons.css 17KB
jeasyui.extensions.css 12KB
codemirror.css 8KB
mdn-like.css 5KB
solarized.css 5KB
datepicker-dev.css 5KB
qunit.css 5KB
jeasyui.extensions.min.css 4KB
datepicker.css 4KB
liquibyte.css 4KB
datepicker.css 3KB
xq-dark.css 3KB
lesser-dark.css 3KB
icecoder.css 2KB
pastel-on-dark.css 2KB
tomorrow-night-eighties.css 2KB
material.css 2KB
ttcn.css 2KB
bglogin.css 2KB
erlang-dark.css 2KB
xq-light.css 2KB
midnight.css 2KB
twilight.css 2KB
icon.css 2KB
base16-light.css 2KB
mbo.css 2KB
base16-dark.css 2KB
vibrant-ink.css 2KB
dracula.css 2KB
paraiso-dark.css 2KB
paraiso-light.css 2KB
3024-night.css 2KB
zenburn.css 2KB
3024-day.css 2KB
seti.css 2KB
abcdef.css 2KB
blackboard.css 2KB
共 3842 条
- 1
- 2
- 3
- 4
- 5
- 6
- 39
资源评论
- woshipaladin2019-12-06好,谢谢共享
- yqh20092017-08-14很好,谢谢共享
- jiejie12222017-05-11用户名密码多少?marko392017-06-13请下载最新版本。marko392017-06-13admin / 123456
- wantled2017-04-24下载后可以打开,但没有说明管理用户名和密码是什么。再者,只能设置管理MySQL的,而我想要的是管理Oraclemarko392017-05-04请下载最新版本,支持MySQL,Oracle,PostgreSQL,MSSQL等数据库marko392017-05-04请下载最版本,支持MySQL,Oracle,PostgreSQL,MSSQL等数据库
- jzq_qd2017-03-03不错的工具
marko39
- 粉丝: 81
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功