# 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``支持支持,可�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
SSM项目的陆丰市医院分诊管理系统是一个基于Spring、SpringMVC和MyBatis框架的Java企业级应用,旨在优化医院的分诊流程,提高诊疗效率,并为患者提供更好的就医体验。 以下是关于SSM项目陆丰市医院分诊管理系统的一些详细介绍: 1. **系统功能**:该系统可能包括了患者信息登记、初步诊断、科室分诊、医生排班、候诊队列管理等功能模块。通过自动化的分诊流程,系统能够有效地引导患者就诊,减少等待时间。 2. **技术实现**:项目利用了SSM框架中的Spring进行依赖注入和事务管理,SpringMVC处理请求分发和页面渲染,MyBatis负责持久层的数据操作。这种架构确保了系统的高可靠性和易维护性。 3. **前后端分离**:前端可能使用了现代的前端框架或库(如React、Vue.js或Bootstrap)来实现响应式设计,后端则使用Java开发,通过RESTful API与前端进行数据交互,这样的设计使得系统更加灵活和可扩展。 4. **数据库设计**:系统后端可能采用了MySQL或其他关系型数据库来存储患者信息、医生信息、预约记录等数据,同时采取了适当的索引和查询优化措施以提升性能。 5. **用户体验**:系统提供了直观的用户界面,使得医务人员能够快速完成分诊工作,同时也为患者提供了清晰的就诊指引和等候信息。 6. **安全性和可扩展性**:系统在用户认证、权限控制等方面进行了严格的设计,以确保患者数据的安全。同时,系统的模块化设计和遵循的编码标准也便于未来的升级和维护。 总的来说,SSM项目陆丰市医院分诊管理系统是一个高效、现代化的医疗分诊平台,它通过集成最新的Web技术和设计理念,不仅提高了医院的服务质量,也改善了患者的就医体验。
资源推荐
资源详情
资源评论
收起资源包目录
SSM项目的陆丰市医院分诊管理系统.zip (2000个子文件)
HibernateDao.class 14KB
SimpleHibernateDao.class 11KB
ScheduleJobService.class 11KB
Reflections.class 9KB
User.class 8KB
UserController.class 7KB
RoleController.class 7KB
UserRealm.class 7KB
JsonMapper.class 7KB
PermissionController.class 6KB
TriageController.class 6KB
Page.class 6KB
JaxbMapper.class 6KB
PropertyFilter.class 5KB
Permission.class 5KB
ScheduleJobController.class 5KB
ServletUtils.class 5KB
Role.class 5KB
DeptController.class 5KB
DictController.class 5KB
LogInterceptor.class 4KB
Log.class 4KB
PropertiesLoader.class 4KB
PatientController.class 4KB
DateUtils.class 4KB
UserService.class 4KB
LogController.class 4KB
RolePermissionService.class 4KB
PermissionService.class 4KB
PermissionDao.class 4KB
StringUtils.class 4KB
BaseController.class 3KB
BaseService.class 3KB
Dict.class 3KB
UserRoleService.class 3KB
PrescriptionService.class 3KB
Patient.class 3KB
TriageService.class 3KB
DeptService.class 3KB
Triage.class 3KB
ConvertUtils.class 3KB
Encodes.class 3KB
Digests.class 3KB
MethodTimeAdvice.class 2KB
PatientService.class 2KB
RolePermission.class 2KB
UserRole.class 2KB
LoginController.class 2KB
SessionListener.class 2KB
PropertyFilter$PropertyType.class 2KB
Prescription.class 2KB
AjaxFilter.class 2KB
ScheduleJob.class 2KB
Dept.class 2KB
BeanMapper.class 2KB
FormAuthenticationCaptchaFilter.class 2KB
Exceptions.class 2KB
TaskA.class 2KB
UserRealm$ShiroUser.class 2KB
Global.class 1KB
RolePermissionDao.class 1KB
PropertyFilter$MatchType.class 1KB
UserUtil.class 1KB
UserRoleDao.class 1KB
LogService.class 1KB
IPUtil.class 1KB
StringEscapeEditor.class 1KB
BaseController$1.class 1KB
LogDao.class 1KB
BaseController$3.class 1KB
DictService.class 1KB
RoleService.class 1KB
UsernamePasswordCaptchaToken.class 1KB
BaseController$2.class 1012B
CaptchaException.class 871B
JaxbMapper$CollectionWrapper.class 647B
PrescriptionDao.class 607B
PatientDao.class 587B
TriageDao.class 583B
DictDao.class 581B
UserDao.class 581B
RoleDao.class 581B
DeptDao.class 575B
.classpath 708B
org.eclipse.wst.common.component 470B
org.eclipse.wst.jsdt.ui.superType.container 49B
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
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
程序媛小刘
- 粉丝: 2849
- 资源: 1322
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功