# Lite
A cross platform template engine base on xml/html and javascript expression.
Install:
-------
>npm install lite
Innovative Features
-------
1. Automatic BigPiple+BigRender Support.
2. Automatic encoding based on HTML semantic context.
3. Available contents transmitted immediately and unavailable content auto wait.
Example:
====
### Simple NodeJS Example
```html
${title}
This is ${user.name}.
I am ${user.age} years old this year
```
```javascript
var LiteEngine = require('lite').LiteEngine;
var engine = new LiteEngine('./');
require('http').createServer(function (request, response) {
var path = '/index.xhtml';
var model = {
title:'simple test',
user:{name:'jindw',age:35}
};
engine.render(path,model,request,response);
}).listen(2012);
```
### NodeJS Example(Automatic Data Loading Optimization)
```javascript
var LiteEngine = require('lite').LiteEngine;
var engine = new LiteEngine('./');
require('http').createServer(function (request, response) {
//template path
var path = '/index.xhtml';
var data1Promise = APIProxy.getDataAsPromise('http://api.xxx.com/user?name=zhangshan&...')
var data2Promise = APIProxy.getDataAsPromise('http://api.xxx.com/user?name=lisi&...')
//model(available data and unavailable data(pending Promise))
var model = {
title:'static first and promise auto wait test'
data1:data1Promise,//output available contents first and wait until the promise is ready!!
data2:data2Promise
};
engine.render(path,model,request,response);
}).listen(2012);
```
* [LiteEngine]:
* render(url,model,request,response)
### NodeJS Example(Automatic Bigpiple && BigRender Optimization)
```xml
...
loading module1...
loading module2...
loading module3...
```
### Java spring mvc
```java
/**
* Created by jindw on 17/2/25.
*/
@Configuration
@EnableWebMvc
public class DemoConfig {
/**
* 模板源代码存储目录
*/
@Value("src/main/resources/templates")
private File templatePath;
/**
* 模板编译中间代码存储目录
*/
private File compiledCachePath;
/**
* 注册视图解析器
*/
@Bean
public ViewResolver getLiteResolver() {
final HotLiteEngine engine = new HotLiteEngine(templatePath,compiledCachePath);
return (String viewName, Locale locale) -> {
final Template tpl = engine.getTemplate(viewName + ".xhtml");
return tpl == null ? null : new View() {
@Override
public String getContentType() {
return tpl.getContentType();
}
@Override
public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception {
tpl.render(model, response.getWriter());
}
};
};
}
}
```
```xml
org.xidea
lite
3.1.15
```
### Other Server Side Impl
```php
1,"text1"=>'1');
$engine->render($path,$context);
```