https://github.com/weivea/ts-template
基于模板字符串的node端模板引擎,嘿嘿嘿~
https://github.com/weivea/ts-template
Last synced: 12 months ago
JSON representation
基于模板字符串的node端模板引擎,嘿嘿嘿~
- Host: GitHub
- URL: https://github.com/weivea/ts-template
- Owner: weivea
- Created: 2018-02-11T11:12:54.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-11T11:14:19.000Z (over 8 years ago)
- Last Synced: 2025-06-03T14:25:11.094Z (about 1 year ago)
- Language: JavaScript
- Size: 1.95 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ts-template
嘿嘿嘿,一个基于模板字符串的模板引擎的最简实现~, 只适用于node环境,
## usage 使用
模板字符串的语法,发挥想象吧,嘿嘿嘿~
```
```
test.js
```javascript
const RenderClass = require('ts-template');
const renderVm = new RenderClass({
rootName: 'root', // 数据跟字段 defaut: 'root'
baseDir: '' // 模板根目录 defaut: path.join(process.cwd(), 'view');
cache: true, // 是否缓存 defaut: true
})
renderVm.render('test.html', data)
renderVm.renderString('
${root.a} + ${root.b} = ${root.a + root.b}', {
a:1,
b:2
})
```
test.html
```html
ts-template
body {
background: rebeccapurple;
}
var a = ${root.a};
include模板:
${await this.include('aa.html')}
嘿嘿嘿
1341
转意:
${e(root.b)}
自运行函数:
${(() => { return 'adadfadfasdf' })()}
```
## extension 扩展
```javascript
const RenderClass = require('ts-template');
class SubRenderClass extends RenderClass {
constructor(opt) {
super(opt)
}
// format函数
dateFormat(data, 'yyyy-MM-dd') {
// ...
}
// async 函数
async getFileData(fileName) {
return new Promise((resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) {
reject(err);
} else {
resolve(data.toString('utf-8'));
}
});
});
}
}
const renderVm = new SubRenderClass({
rootName: 'root', // 数据跟字段 defaut: 'root'
baseDir: '' // 模板根目录 defaut: path.join(process.cwd(), 'view');
cache: true, // 是否缓存 defaut: true
})
renderVm.renderString('
${_.dateFormat(root.time)} ${await _.getFileData(root.file)}', {
time: 1518344445732,
file: '/path/to/file.txt'
})
// 或者
renderVm.renderString('${this.dateFormat(root.time)} ${await this.getFileData(root.file)}', {
time: 1518344445732,
file: '/path/to/file.txt'
})
```