npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jts

v1.2.4

Published

Basic server side templates using Javascript template strings.

Downloads

330

Readme

JTS Server-side Templating Build Status

JTS (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.

Configuration

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 layout. When a default layout is set, use _jts.layout('none') to prevent a template from being rendered in any layout.
  • layouts: (optional) the relative path to all layouts. When a layout is requested JTS will attempt to load the file both from the path specified here as well as relative to the child layout if applicable.
  • cache: Enable or disable template caching. Useful when developing locally. 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 false.

Using in Sails.js

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,
  },
};

Using in Express.js

JTS is compatible with app.engine in Express:

var JTS = require('jts');
var engine = new JTS({
  defaultLayout: 'layout',
  layouts: 'views'
});

app.engine('jts', engine);

Layout support

Templates can request to be rendered in a layout by calling _jts.layout with the name of the template file. Only one parent layout is supported. The parent layout should include ${ body } to render the child.

String filtering

Basic string filtering is provided to sanitize potentially unsafe input. This can be called via _jts.s with the variable to sanitize.

Array mapping

An array can be mapped to HTML using the helper _jts.each.