https://github.com/imhype/fast-ftl
simple and fast freemarker render engine
https://github.com/imhype/fast-ftl
Last synced: about 2 months ago
JSON representation
simple and fast freemarker render engine
- Host: GitHub
- URL: https://github.com/imhype/fast-ftl
- Owner: ImHype
- License: mit
- Created: 2017-01-22T05:42:15.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-11-23T11:52:50.000Z (over 7 years ago)
- Last Synced: 2025-03-24T10:56:28.693Z (2 months ago)
- Language: JavaScript
- Homepage:
- Size: 3.28 MB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README-zh_CN.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
## 过程原理图
## 如何开始?
```bash
npm i fast-ftl -S
```
### 第 1 步、引入
#### 1. es2015+ 中引入
```javascript
import Render from "fast-ftl";
```#### 2. CommonJS 中引入
```javascript
const {Render} = require("fast-ftl");
```
或者
```javascript
var Render = require("fast-ftl").Render;
```#### 第 2 步、初始化
```javascript
var render = Render({
root: path.join(__dirname, 'pages'),
paths: [
path.join(__dirname, 'common')
], // Support MultiTemplateLoader
defaultEncoding: "utf-8", // 默认 encoding
urlEscapingCharsetSet: "utf-8", // URLEscapingCharset
numberFormat: "0.##########", // 数字格式化方式
templateUpdateDelay: 0 // milliseconds 为单位
});
```| property | Fast-FTL | defaultValue|
| ------| ------ | ------ |
| default_encoding | defaultEncoding | utf-8 |
| url_escaping_charset | urlEscapingCharsetSet | utf-8 |
| number_format | numberFormat | 0.########## |
| template_update_delay(Milliseconds)| templateUpdateDelay | 0 |#### 第 3 步、调用
```javascript
render.parse("test.ftl", {
YourName: "Jack"
}).then(data => {
console.log(data);
}).catch(e => {
console.log(e)
});
```## 特色
1. 调用快,源于**Fast-FTL**的freemarker解析机制:
在Java端建立Socket监听服务,Node.js将需要解析的模板和数据发送给Java端,Java端接收请求并进行解析后将结果返回给Node.js端。好处是,无重复初始化Freemarker自身类的开销
2. 支持多**root template directory**的设定:
paths参数配置的目录下的文件,允许root下的模板直接通过 /xxx.ftl 的方式访问对应ftl,优先级按降序
3. API 简易,基于 `Promise`,文件**encoding**只支持**utf-8**The Freemaker parsing service in Node.js
[中文 README](./README-zh_CN.md)
## Process
## How to use
```bash
npm i fast-ftl -S
```
#### Step 1 - Import
##### 1. Import in es2015+
```javascript
import Render from "fast-ftl";
```##### 2. Require in CommonJS
```javascript
const {Render} = require("fast-ftl");
```
or
```javascript
var Render = require("fast-ftl").Render;
```#### Step 2 - Init Fast-FTL
```javascript
var render = Render({
root: path.join(__dirname, 'pages'),
paths: [
path.join(__dirname, 'common')
], // Support MultiTemplateLoader
defaultEncoding: "utf-8", // 默认 encoding
urlEscapingCharsetSet: "utf-8", // URLEscapingCharset
numberFormat: "0.##########", // 数字格式化方式
templateUpdateDelay: 0 // milliseconds 为单位
});
```| property | Fast-FTL | defaultValue|
| ------| ------ | ------ |
| default_encoding | defaultEncoding | utf-8 |
| url_escaping_charset | urlEscapingCharsetSet | utf-8 |
| number_format | numberFormat | 0.########## |
| template_update_delay(Milliseconds)| templateUpdateDelay | 0 |#### Step 3 - Parse file
```javascript
render.parse("test.ftl", {
YourName: "Jack"
}).then(data => {
console.log(data);
}).catch(e => {
console.log(e)
});
```
## Features
1. Fast: use Socket to invoke Java Freemarker Parser, not in Teminal.
2. Support MultiTemplate Directory.
3. Simple API, base on Promise.## Contributors
| [
君羽](https://github.com/imhype)
[💻](https://github.com/imhype/fast-ftl/commits?author=ImHype) 🔌 🚇 [📖](https://github.com/imhype/fast-ftl/commits?author=ImHype)
[⚠️](https://github.com/imhype/fast-ftl/commits?author=ImHype) [🐛](https://github.com/imhype/fast-ftl/issues?q=author%3AImHype) 💡 | [
carryxyh](https://github.com/carryxyh)
[💻](https://github.com/imhype/fast-ftl/commits/java?author=carryxyh)
|
| :---: | :---: |## LICENSE
[![license][license-image]][license-url][license-url]: https://github.com/ImHype/Fast-FTL/blob/master/LICENSE
[license-image]: https://img.shields.io/github/license/imhype/Fast-FTL.svg