Basic server side templates using Javascript template strings.
npm install jtsJTS (Javascript Template String) is a very basic server side template engine.
Actually, to call it a template engine is rather generous--rather this was
designed mainly to be a drop-in replacement for EJS on Express or Sails servers.
JTS merely uses the built-in template strings in ES6 which is available by
default in Node versions 4 and up. It is built primarily for speed and will not
have convenience features added that significantly impact speed.
Benchmarks are available in the benchmark folder to compare performance with
your favorite templating engine. You can also view current observed results
here.
More documentation and features to come.
```
var JTS = require('jts');
var engine = new JTS({
defaultLayout: 'layout.jts',
layouts: 'path/to/layouts',
cache: {
max: 500,
maxAge: 1000 60 5
}
})
* defaultLayout: (optional) will attempt to render all templates in this_jts.layout('none')
layout. When a default layout is set, use to prevent alayouts
template from being rendered in any layout.
* : (optional) the relative path to all layouts. When a layout iscache
requested JTS will attempt to load the file both from the path specified here
as well as relative to the child layout if applicable.
* : Enable or disable template caching. Useful when developing locally.false
Only the compiled function will be cached so that cache is created only once
for each template. Uses lru-cache
behind the scenes and can be disabled completely by setting to .
The JTS engine can be used in Sails by modifying config/views.js:
`
var JTS = require('jts');
var engine = new JTS({
defaultLayout: 'layout',
layouts: 'views'
});
module.exports.views = {
engine: {
ext: 'jts',
fn: engine.render,
},
};
`
JTS is compatible with app.engine in Express:
`
var JTS = require('jts');
var engine = new JTS({
defaultLayout: 'layout',
layouts: 'views'
});
app.engine('jts', engine);
`
Templates can request to be rendered in a layout by calling _jts.layout with${ body }
the name of the template file. Only one parent layout is supported. The parent
layout should include to render the child.
Basic string filtering is provided to sanitize potentially unsafe input. This
can be called via _jts.s with the variable to sanitize.
An array can be mapped to HTML using the helper _jts.each`.