8.4.5 • Published 6 years ago

gotpl v8.4.5

Weekly downloads
11
License
MIT
Repository
github
Last release
6 years ago

gotpl

Build Status Coverage Status Version License Dependencies DevDependencies

A lightweight, high-performance JavaScript template engine.

Installation

Webpack/Browserify

npm install gotpl --save

Direct <script> Include

Simply download and include with a script tag. playable will be registered as a global variable.

CDN

<script src="https://cdn.jsdelivr.net/npm/gotpl/dist/gotpl.min.js"></script>

You can browse the source of the NPM package at cdn.jsdelivr.net/npm/gotpl.

Test

$ npm run test

You can also check the test report in your browser.

Examples

Online Example

<h1>Projects</h1>
<ul id="list"></ul>

<% if (projects.length) { %>
	<% for (var i = 0, l = projects.length; i < l; ++i) { %>
		<% var item = projects[i]; %>
		<li class="item">
			<a target="_blank" href="<%=item.url%>"><%= item.name %></a>
		</li>
	<% } %>
<% } %>

Usages

Browser

var data = {
	projects: [{
		"name": "gotpl",
		"url": "https://github.com/Lanfei/gotpl"
	}, {
		"name": "playable.js",
		"url": "https://github.com/Lanfei/playable.js"
	}, {
		"name": "webpack-isomorphic",
		"url": "https://github.com/Lanfei/webpack-isomorphic"
	}, {
		"name": "websocket-lib",
		"url": "https://github.com/Lanfei/websocket-lib"
	}, {
		"name": "node-cd-cluster",
		"url": "https://github.com/Lanfei/node-cd-cluster"
	}]
};
var tpl = document.getElementById('tpl').innerHTML;
document.getElementById('list').innerHTML = gotpl.render(tpl, data);

Node

gotpl.config(options);

gotpl.render(template, data, options);

gotpl.renderFileSync(path, data, options);

gotpl.renderFile(path, data, options, (err, html) => {
	// Your codes.
});

await gotpl.renderFile(path, data, options);

// Cache the compiled function
let fn = gotpl.compile(template, options);
fn(data);

Express

app.engine('tpl', template.renderFile);
app.set('view engine', 'tpl');

Options

  • root The root of template files
  • scope Rendering context, defaults to global in node, window in browser
  • debug Enable debug information output, defaults to false
  • cache Enable caching, defaults to true
  • minify Minify indents, defaults to true
  • openTag Open tag, defaults to <%
  • closeTag Close tag, defaults to %>

Tags

  • <% code %> Logic code
  • <%= value => Output the value as escaped HTML
  • <%- value %> Output the value as unescaped HTML

includes

Use include(path[, data, options]) function to import partial templates, and use <%- value %> tag to output:

<h1>Projects</h1>
<ul id="list"></ul>

<% if (projects.length) { %>
	<% for (var i = 0, l = projects.length; i < l; ++i) { %>
		<%- include('project', projects[i]) %>
	<% } %>
<% } %>
8.4.5

6 years ago

8.4.4

6 years ago

8.4.3

6 years ago

8.4.2

6 years ago

8.4.1

6 years ago

8.4.0

6 years ago

8.3.0

6 years ago

8.2.3

6 years ago

8.2.2

6 years ago

8.2.1

6 years ago

8.2.0

6 years ago

8.1.2

6 years ago

8.1.1

6 years ago

8.1.0

6 years ago

8.0.3

6 years ago

8.0.2

6 years ago

8.0.1

6 years ago

8.0.0

6 years ago

7.0.4

6 years ago

7.0.3

6 years ago

7.0.2

6 years ago

7.0.1

6 years ago

7.0.0

6 years ago

6.1.2

6 years ago

6.1.1

6 years ago

6.1.0

6 years ago

6.0.2

7 years ago

6.0.1

7 years ago

6.0.0

7 years ago

5.0.1

8 years ago

5.0.0

8 years ago

4.6.1

9 years ago

4.6.0

9 years ago

4.5.0

9 years ago

4.4.0

9 years ago

4.3.1

10 years ago

4.3.0

10 years ago

4.2.3

10 years ago

4.2.2

10 years ago

4.2.1

10 years ago

4.2.0

10 years ago

4.1.3

10 years ago

4.1.2

10 years ago

4.1.1

10 years ago

4.1.0

10 years ago