A cross platform template engine base on xml/html and javascript expression.
npm install liteInstall:
-------
>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:
====
``html`
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);
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)
$3
`xml
...
loading module1...
loading module2...
loading module3...
`$3
`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
`
$3
`php
require_once("LiteEngine.php");
$root = realpath(__DIR__.'/../').'/';
$engine = new LiteEngine($root);
$path = '/test/index.xhtml';
$context = array("int1"=>1,"text1"=>'1');
$engine->render($path,$context);
``