Skip to content

tipJS-Team/tipJSP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tipJSP(JavaScript Page) - JavaScript template engine.

#Features

#Quick example Below is quick example how to use tipJSP.js:

var vdata = {
	name : "peku",
	age : 20
};

var html = tipJSP.render("<ul><li><@=name@></li><li><@=age@></li></ul>", vdata);
// output "<ul><li>peku</li><li>20</li></ul>"

#Try It!

#Installation ###Node.js

npm install tipjsp -save

###Web browser

<script src='tipJSP.js'></script>

#Express3 framework view system

app.engine( 'jsp', require('tipjsp') );
app.set('views', __dirname + '/views');
app.set('view engine', 'jsp');
// or
app.engine( 'jsp', require('tipjsp').setSep('<%', '%>') );
...

#Rendering ###tipJSP.render(string, data) #####template

<script type='text/tipJSP' id='template'>
<ul>
<@ for(var i=0; i<arr.length; i++){ @>
	<li><@= arr[i] @></li>
<@ } @>
</ul>
</script>

#####script

var vdata = {
	arr : ["peku1","peku2","peku3"]
};

var html = tipJSP.render(document.getElementById("template").innerHTML, vdata);
console.log(html);

#####output

<ul>
	<li>peku1</li>
	<li>peku2</li>
	<li>peku3</li>
</ul>

###tipJSP.renderFile(path, data);

var vdata = {
	arr : ["peku1","peku2","peku3"]
};

var html = tipJSP.renderFile("./template.jsp", vdata);
console.log(html);

#Simple loop syntax

Array

#####template

<ul>
<@# i in arr @>
	<li><@= arr[i] @></li>
<@ } @>
</ul>

#####script

var vdata = {
	arr : ["peku1","peku2","peku3"]
};

var html = tipJSP.render(templateStr, vdata);

#####output

<ul>
	<li>peku1</li>
	<li>peku2</li>
	<li>peku3</li>
</ul>

Object

#####template

<ul>
<@# k in obj @>
	<li><@= obj[k] @></li>
<@ } @>
</ul>

#####script

var vdata = {
	obj : {a:"peku1",b:"peku2",c:"peku3"}
};

var html = tipJSP.render(templateStr, vdata);

#####output

<ul>
	<li>peku1</li>
	<li>peku2</li>
	<li>peku3</li>
</ul>

#Simple condition syntax #####template

<@# input @> or <@# input == true @>
	<h1><@=value1@></h1>
<@ } @>
<@# !input @> or <@# input == false @>
	<h1><@=value2@></h1>
<@ } @>

#####script

var vdata = {
	input : true,
	value1 : 'true',
	value2 : 'false'
};

var html = tipJSP.render(templateStr, vdata);

#####output

<h1>true</h1>

#Includes #####header.jsp

<h1>HEADER</h1>

#####body.jsp

<html>
<body>
<@ include header.jsp @>
</body>
</html>

#####output

<html>
<body>
<h1>HEADER</h1>
</body>
</html>

#Extends #####base.jsp

<html>
<body>
<h1>TITLE</h1>
<ul>
<@match child1@>
</ul>
<ul>
<@match child2@>
</ul>
</body>
</html>

#####index.jsp

<@extends base.jsp@>
<@match child1@>
<li>child1-1</li>
<li>child1-2</li>
<@match child2@>
<li>child2-1</li>
<li>child2-2</li>

#####script

var html = tipJSP.renderFile('index.jsp', vdata);

#####output

<html>
<body>
<h1>TITLE</h1>
<ul>
<li>child1-1</li>
<li>child1-2</li>
</ul>
<ul>
<li>child2-1</li>
<li>child2-2</li>
</ul>
</body>
</html>

#Compile caching ###setCache(true/false)

var vdata = {
	arr : ["peku1","peku2","peku3"]
};
var str = document.getElementById("template").innerHTML;
tipJSP.setCache(true); // enable/disable compile cache
var html = tipJSP.render(str, vdata);
// or
var html = tipJSP.setCache(true).render(str, vdata);

#Change seperator #####template

<ul>
<% for(var i=0; i<arr.length; i++){ %>
	<li><%= arr[i] %></li>
<% } %>
</ul>

#####script

var vdata = {
	arr : ["peku1","peku2","peku3"]
};
var str = document.getElementById("template").innerHTML;
tipJSP.setSep('<%', '%>');
var html = tipJSP.render(str, vdata);
// or
var html = tipJSP.setSep('<%', '%>').render(str, vdata);
console.log(html);

#String modifier ###cr2(to)

// input = 'peku1\r\npeku2\rpeku3';
<@= input|cr2,'\n' @>
// output = 'peku1\npeku2\npeku3';

###cr2br()

// input = 'peku1\r\npeku2\npeku3';
<@= input|cr2br @>
// output = 'peku1<br />peku2<br />peku3';

###cutStrb(length[, reststr])

// input = '가나다abc';
<@= input|cutStrb,2 @>
// output = '가나...';
<@= input|cutStrb,5,'..' @>
// output = '가나다ab..';

###date(dateformat)

// input = 1388556061000; // milliseconds or dateString
<@= input|date,'yyyy/MM/dd HH:mm:ss' @>
// output = '2014/01/01 15:01:01';
<@= input|date,'yyyy년 MM月 ddDay hh:mm:ss:ap',['Morning', 'Noon'] @>
// output = '2014년 01月 01Day 03:01:01:Noon';
<@= input|date,'yy-MM-dd hh:mm:ss:ap' @>
// output = '14-01-01 03:01:01:PM';

###escapeHtml()

// input = '<h1>abc</h1>&\'"';
<@= input|escapeHtml @>
// output = '&lt;h1&gt;abc&lt;/h1&gt;&amp;&apos;&quot;';

###escapeBackslash()

// input = 'a\\b\\c';
<@= input|escapeBackslash @>
// output = 'a\\\\b\\\\c';

###numcomma([unit])

// input = 1234567;
<@= input|numcomma @>
// output = '1,234,567';
<@= input|numcomma,'원' @>
// output = '1,234,567원';

###stripTag()

// input = '<h1>abc</h1>&\'"';
<@= input|stripTag @>
// output = 'abc&\'"';

###trim()

// input = '  abc d ef  ';
<@= input|trim @>
// output = 'abc d ef';

#Custom user modifier #####template

<div><@= num|double @></div>
<div><@= num|half @></div>

#####script

var vdata = {
	age : 20
};
var userModifier = {
	double : function( num ){
		return num * 2;
	},
	half : function( num ){
		return num / 2;
	}
};
var str = document.getElementById("template").innerHTML;
tipJSP.setModifier( userModifier );
var html = tipJSP.render(str, vdata);
// or
var html = tipJSP.setModifier( userModifier ).render(str, vdata);
console.log(html);

#####output

<div>40</div>
<div>10</div>

#Thanks

  • Maeng,KiWan / hikaMaeng

About

tipJSP(JavaScript Page) - JavaScript template engine.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published