1.1.0 • Published 8 years ago

nte v1.1.0

Weekly downloads
9
License
MIT
Repository
github
Last release
8 years ago

NTE

A super simple, easily extensible and inspirational template engine for Node.js!

NTE stands for Node.js Template Engine.

Features:

  • parse templates thanks to vm.runInContext
  • bidirectional data communication
  • light footprint (the code is only 109 lines!)
  • coming soon allow to choose between
  vm.runInContext(code, contextifiedSandbox[, options])
  vm.runInDebugContext(code)
  vm.runInNewContext(code[, sandbox][, options])
  vm.runInThisContext(code[, options])

(now it relies only upon runInContext)

  • coming soon include directives

Installation

npm install nte --save

APIs

Node

  nte.linkExpress(expressObject, templatesFolder)

link express to NTE to deliver compiled tempaltes

  nte.renderFile(filePath, globals);

take the specified file and compile it using the variables passed with the "globals" parameter

Template

  echo(string)

print some text to the output buffer.

Usage

Server code (/server.js)

// initialization code
var express = require('express');
var app = express();
var nte = require("nte");

// if you want express support:
// nte.linkExpress(expressObject, templatesFolder);
nte.linkExpress(app, "public");

// serve as string
app.get('/NTEPlain', function (req, res) {
    var myTpl = nte.renderFile(__dirname + "/public/myTpl.nte", {username: "john.doe"});
    res.end(myTpl);
});

// serve with express
app.get('/NTEExpress', function (req, res) {
    res.render('myTpl', {username: "john.doe"});
});

// *** LISTENING ***
var server = app.listen(8081, function () {
	var host = server.address().address;
	var port = server.address().port;
	console.log("Listening at http://%s:%s", host, port);
});

Template Code (/public/myTpl.nte)

<!doctype html>
<html>
<head>
	<title>hello world</title>
</head>
<body>
	<?node var foo = 2; foo; echo(" " + (foo++) + " "); foo++; echo(foo); ?>
	hello <?node echo(username); ?>!
	<?node echo(foo); ?>
</body>
</html>

Release History

  • 1.1.0 Performance improvements: Not using regex for parsing anymore saving performance on PREG overhead. Simple string checks are now performed. I know this could lead to parsing problem in some cases but if you know what you're doing this worth it. All the js code is now squashed together and executed at once reducing overhead on the VM calls!
  • 1.0.0 Initial release