Notorious Pug Mafia

    smarty4js

    0.1.8 • Public • Published

    Smarty4Js (Smarty For JavaScript)

    What?

    • JavaScript template engine
    • Supports Smarty template syntax
    • Used in Node.js
    • Simple and powerful way to create and render a template

    Why?

    • Powerful
    • Don't want to have two or more templates in your project
    • Deep love for Smarty

    When?

    • When your synchronous templates is Smarty, and your Ajax templates will use the same template
    • When you want to write Smarty templates with JavaScript anywhere
    • When you want to put a lot of logic in JavaScript templates
    • When you like Smarty very much

    How?

    • Single
    • With Grunt
    • With Gulp
    • With EDP
    • With all Node.js web subject

    Usage

    Install

        npm install -g smarty4js

    Syntax

        Most of Smarty syntax is supported.
    

    Command line

       // get tpl.js
       smarty4Js compile a.tpl [b.tpl ...] [-c|--config=confPath -o|--output=outputPath]
           -c | --config: Use user-define config file
           -o | --output: Specify a destination directory
     
       // get tpl.html
       smarty4Js render a.tpl [b.tpl ...] -d|--data=jsonFilePath [-c|--config=confPath -o|--output=outputPath]
           -d | --data  : JSON data file path to render
           -c | --config: Use user-defined config file
           -o | --output: Specify a destination directory
     
       // show current version
       smarty4Js -v|--version
     
    • if render, return html(demo.tpl.html), if compile, return jsTpl(demo.tpl.js)
    • jsTpl is a closure. It has a render method that you can use:
        
        // amd and cmd
        var template = require('demo.tpl');
        template.render(data);
     
        // you can also use <script>
     

    used in Node.js

        // get Smarty class
        var Smarty = require('smarty4Js');
     
        // create a Smarty object
        var s = new Smarty();
     
        // if compile source is template code and have `include, extend...` sentence in code
        // you must give a path by `setBasedir` method
        s.setBasedir(path);
     
        // get compiler
        // `tpl` param is template code or template file path
        var compiler = s.compile(tpl); 
     
     
        // get ast
        var ast = s.ast;
     
        // get js code
        var js = compiler.getJsTpl();
     
        // render Smarty with data (3 methods)
        var html = compiler.render(data);
     
        // `tpl` param is template code or template file path
        var html = s.render(tpl, data);
     
        var html = (new Function('return ' + js)()).render(data);

    Install

    npm i smarty4js

    DownloadsWeekly Downloads

    286

    Version

    0.1.8

    License

    none

    Last publish

    Collaborators

    • zoumiaojiang