gotpl v8.4.5
gotpl
A lightweight, high-performance JavaScript template engine.
Installation
Webpack/Browserify
npm install gotpl --saveDirect <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 testYou can also check the test report in your browser.
Examples
<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
rootThe root of template filesscopeRendering context, defaults toglobalin node,windowin browserdebugEnable debug information output, defaults tofalsecacheEnable caching, defaults totrueminifyMinify indents, defaults totrueopenTagOpen tag, defaults to<%closeTagClose 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]) %>
<% } %>
<% } %>7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago