# smarty4js **Repository Path**: mirrors_ecomfe/smarty4js ## Basic Information - **Project Name**: smarty4js - **Description**: a JavaScript template most like smarty, use smarty module in javascript - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 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 ```bash npm install -g smarty4js ``` #### Syntax ``` Most of Smarty syntax is supported. ``` #### Command line ```bash // 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: ```Javascript // amd and cmd var template = require('demo.tpl'); template.render(data); // you can also use