# tpjs

> 最简洁高效的js模板引擎!

Latest version **3.8.3** (published 2017-01-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install tpjs
pnpm add tpjs
yarn add tpjs
bun add tpjs
```

Provides the command `tp`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.8.3 |
| Published | 2017-01-07 |
| First published | 2015-07-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Houfeng |
| Maintainers | houzhanfeng |
| Keywords | tp, template, engine, tmpl, JavaScript, html |

## Links

- npm: https://www.npmjs.com/package/tpjs
- Repository: https://github.com/Houfeng/tp
- Homepage: http://houfeng.net/tp
- Issues: https://github.com/Houfeng/tp/issues
- npm.io page: https://npm.io/package/tpjs

## Dependencies (3)

- [ntils](https://npm.io/package/ntils.md) ^2.0.3
- [cmdline](https://npm.io/package/cmdline.md) ^2.0.2
- [uglify-js](https://npm.io/package/uglify-js.md) ^2.7.5

## Alternatives

- [@tsparticles/shape-image](https://npm.io/package/@tsparticles/shape-image.md) — 303.7K weekly downloads
- [@tsparticles/shape-line](https://npm.io/package/@tsparticles/shape-line.md) — 233.7K weekly downloads
- [stringify-attributes](https://npm.io/package/stringify-attributes.md) — 58.6K weekly downloads
- [mobile-drag-drop](https://npm.io/package/mobile-drag-drop.md) — 46.3K weekly downloads
- [@comunica/actor-rdf-parse-html](https://npm.io/package/@comunica/actor-rdf-parse-html.md) — 29.2K weekly downloads

## Recent versions

- 3.8.3 (latest) — 2017-01-07
- 3.8.2 — 2017-01-07
- 3.8.1 — 2016-08-10
- 3.8.0 — 2016-08-10
- 3.7.9 — 2016-08-10
- 3.7.8 — 2016-08-10
- 3.7.7 — 2016-08-10
- 3.7.6 — 2016-08-04
- 3.7.5 — 2016-08-03
- 3.7.2 — 2016-06-08
- 3.7.1 — 2015-08-18
- 3.7.0 — 2015-08-13
- 3.6.9 — 2015-08-07
- 3.6.8 — 2015-08-07
- 3.6.7 — 2015-08-07
- … 6 more at https://npm.io/package/tpjs/versions

## README

### TP 模板引擎
>Tp 是一个 “轻量，简洁，高效” 的 javascript 模板引擎！

[![npm version](https://badge.fury.io/js/tpjs.svg)](http://badge.fury.io/js/tpjs)  

### 简介
```
+ 轻量，tp是目前能见到最轻量的javascript模板引擎，只有一个不足1.5k的文件。
+ 简洁，tp的语法非常简单，对于一个熟悉html、js的开发人员来说学习难度为 0。
+ 高效，tp支持模板预编译，快于任何一个你所见过的javascript模板引擎。
+ 另外，tp同时支持在浏览器环境使用及服务端javascript环境(Node.js)使用。
```

### 联系作者
```
+ 您可以发邮件到 admin@xhou.net
+ 或者访问 http://www.houfeng.net
+ 关注微博 http://weibo.com/houfeng
```

### 在浏览器中吏用

#### 在页面中引入
```
+ 下载tp
+ 将tp.js或tp-min.js放到项目中合适的位置。
+ 在相关页面用<script src='tp的url'></script>引入tp。
```

#### AMD/CMD 方式引用
```javascript
var tp = require('相对路径');
```

#### 解析(tp.parse)
代码:
```javascript
var html='<div>My name is <% $(name) %></div>';
var rs=tp.parse(html,{name:'tp'});
```
结果:
```
rs: “<div>My name is tp</div>”
```

#### 编译(tp.compile)
代码:
```javascript
var html='<div>My name is <% $(name) %></div>';
var fn=tp.compile(html);
var rs=fn({name:'tp'});
```
结果:
```
fn: 编译结果，可以暂存以供调用。
rs: “<div>My name is tp</div>”
```

#### HTML元素
HTML:
```html
<script id="list-template" type='text/template'>
<% for(var i in this %>
<li><% $(this[i]) %></li>
<% } %>
</script>

<ul id="list">
</ul>
```
代码:
```javascript
//绑定数据:
tp.bind({
	template:'list-template',
	element:'list',
	model:["item-1","item-2"]
}); 
//追加绑定数据:
tp.bind({
	template:'list-template',
	element:'list',
	model:["item-1","item-2"],
	append:true
}); 
```

结果:
```html
<ul id="list">
<li>item-1</li>
<li>item-2</li>
</ul>
```

### 在 Node.js 中使用

#### 安装
```javascript
[sudo] npm install tpjs [-g]
```

#### 引用
```javascript
var tp = require('tpjs');

//解析
var rs = tp.parse(html,options);
//预编译
var fn = tp.compile(html,options);
```

#### 命令行工具
使用命令行工具需要全局安装 tpjs，如下
```javascript
[sudo] npm install tpjs -g
```
CLI 说明
```javascript
tp <src> <dst>
```
1. src: 源文件路径，相对于当前工作目录
2. dst: 输出的目标路径，相对于当前工作目录

---
_Source: https://npm.io/package/tpjs · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
