jstemplate v0.2.5
JSTemplate - A pure Javascript templating engine for node.js
JSTemplate is a simple and pure-Javascript templating engine for node.js
Installing
npm install jstemplateA basic template
<%
var
title = "Mr";
-%>
Hello <%= title %> <%= args.sir -%>Processing a template
var
JSTemplate = require('jstemplate'),
jst = new JSTemplate({viewDir: 'views'});
jst.process("basic.jst",{sir:process.env.LOGNAME},function(err,output){
if ( err )
throw err;
console.log(output);
});Settings
The JSTemplate object supports the following settings:
viewDir: The directory containing the templates (or views)statInterval: The interval of time (in ms) that a template file is stat()'ed and the modify time is watched to see if the template file was changed. Default to5000useLayout: Defines if the layout.jst will be used to encapsulate the result of the processed template. Defaults to:true
The syntax
<% CODE %>: Everything between<%and%>will be evaluated as javascript. Example:<% var x = 666; %><%= VARIABLE|STATEMENT %>or<%? VARIABLE|STATEMENT %>: Prints the result of a variable or statement<& file.jst, {a:1,b:2} | p &>: Includes template file.jst and pass{a:1,b:2}as arguments (argsvariable); Optional| pflag can be passed to just pre-process the template so it can be included withjst.include()
Spaces and indentation
Optionally all tags can finish with a - (example <% args.somevar -%>) telling that the next return's should be discarded;
Accessible variables
These variable are accessible by the template code:
args: The object containing the template argumentsjst: The global JSTemplate object
API
The JSTemplate object exposes the following API:
print(str): Prints a stringdump(obj): Prints the dump of an objectinclude(file,args): Includes a template and call it with the specified argumentsnext(): Calls the next template on the execution stack (ninjas only)html(str): Converts some data on something that is safe to use on a HTML pageurl(str): Converts some data on something linkable (escape)globalvariable : A place where you can store some global data
Questions and suggestions
Mail me.