Now with Partition Management

    lite

    4.0.5 • Public • Published

    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>
    <head><title>${title}</title></head>
    <body>
    This is ${user.name}.
    I am ${user.age} years old this year
    </body>
    </html>
    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)

    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)

    <html>
    <head>...</head>
    <body>
    <div c:widget="widget/header.xhtml"/>
    <div c:lazy-widget="widget/module1.xhtml">
        <!-- module1 source will build as a inner generator function, 
            and flush as __widget_arrived callback(...) when data prepared  -->
        loading module1...
    </div>
    <div c:lazy-widget="widget/module2.xhtml">
        loading module2...
    </div>
    <div c:lazy-widget="widget/module3.xhtml">loading module3...</div>
    <div c:widget="widget/footer.xhtml"/>
     
    </body>
    </html>

    Java spring mvc

     
    /**
     * 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<String, ?> modelHttpServletRequest requestHttpServletResponse response) throws Exception {
                        tpl.render(model, response.getWriter());
                    }
                };
            };
        }
    }
     
     
            <dependency>
                <groupId>org.xidea</groupId>
                <artifactId>lite</artifactId>
                <version>3.1.15</version>
            </dependency>

    Other Server Side Impl

    <?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);

    Install

    npm i lite

    DownloadsWeekly Downloads

    2,414

    Version

    4.0.5

    License

    none

    Last publish

    Collaborators

    • jindw