jstmpl v0.0.5
JSTmpl - JavaScript Templates
Plain-text template engine with JavaScript support.
Adapted from underscore.js. Forked from: bfa4fe8a4f / November 23, 2011
Overview
JSTmpl started off as a simple project of shamelessly ripping out underscore.js' template functionality and converting it into an AMD module for use in frontends. Since then, quite a few things have changed, and functionality of the template engine has been somewhat expanded.
JSTmpl now supports a handful of useful helper functions that makes combining JavaScript with your template much easier, and ads performance improvements like in-memory cache.
The JSTmpl module itself has been converted to UMD format so it can be used both server- and client-side.
TAGS
Variable holding all enclosable tags
jstmplmpl.html
HTML-related helper methods.
Following tags are supported: p, a, strong, em, button, code, pre, blockquote, div, li, dd, dt, td, th, tr, h1, h2, h3, h4, h5, h6, and tt.
The b and i tags are aliases for strong and em respectively.
You can convert a sring into a tagged string by calling a method named after the tag:
jstmpl.html.p('This is a paragraph'); // results in 'This is a paragraph'
You can also use arbitrary attributes:
jqx.html.a('click here', {href: 'http://example.com'}); // results in 'click here'
All HTML helper methods are available inside templates as well, prefixed
by g.h.. For example jstmpl.html.a() will be g.h.a() within
the templates.
Other helper methods are documented in their own sections.
jstmpl.html.enclose(s, t, attr)
Enclose in HTML tags. s is the string to be enclosed in tags. t is the
tag name, and attr is an object containing key-value mappings of HTML
attributes.
jstmpl.html.select(opts, attrs)
Creates <option> elements for a select input and wraps them in
<select> tags.
array of label which would be also used as values.
jstmpl.html.escape(s)
Escapes HTML tags and special characters in string s.
jstmpl.url
URL-related helper methods.
jstmpl.url.toQuery(parameters)
Converts a key-value pair of parameters into an URL query string. The
resulting string does not include the leading question mark ?.
It is assumed that keys are valid, and require no special treatment.
jstmpl.settings
Main template settings. Following are used:
- evaluate: Regexp for evaluate tag (default matches
<% %>) - interpolate: Regexp for interpolate tag (default matches
<%= %>) - escape: Regexp for escape tag (default matches
<%- %>) - debug: Flag that enables debugging messages in the templates
- globals: Object which will be available inside the object as
g. You can use it to make anything available to the template.
jstmpl.render(str, data, settings)
Renders the template contained in str using data. settings can be
passed to override global settings.
If data is omitted, a function is returned which can be used to render
the template by specifying only the data, at some later time. If data is
just true, the template function is returned as a string instead of the
rendered template.
Passing true instead of the data can be a useful debugging tool.