From ec2f803a306c7843a8814029b5e77a9dadffd136 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Thu, 30 Jun 2011 23:48:38 +0200 Subject: progress: templates/css, new router, paste module as db abstraction --- lib/templates.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 lib/templates.js (limited to 'lib/templates.js') diff --git a/lib/templates.js b/lib/templates.js new file mode 100644 index 0000000..c470454 --- /dev/null +++ b/lib/templates.js @@ -0,0 +1,46 @@ +var nun = require('nun'); + +var templates = {}; + +var render = function(template, args, callback) { + if (template in templates) { + callback(undefined, templates[template](args)); + } + else { + nun.compile(__dirname + '/../templates/' + template, "", function(err, tmpl) { + if (err) { + callback(err); + } + else { + templates[template] = tmpl; + callback(err, tmpl(args)); + } + }); + } +}; + +var renderHtml = function(template, args, res) { + render(template, args, function(err, events) { + if (err) { + res.writeHead(500, {'Content-Type': 'text/plain'}); + res.write(JSON.stringify(err)); + res.end('\n'); + } + else { + res.writeHead(200, {'Content-Type': 'text/html'}); + + events.on('data', function(data) { + res.write(data); + }); + + events.on('end', function() { + res.end('\n'); + }); + } + }); +}; + +module.exports = { + render: render, + renderHtml: renderHtml +}; -- cgit v1.2.3