Skip to content

Instantly share code, notes, and snippets.

@jasonkuhrt
Created September 28, 2012 18:37
Show Gist options
  • Save jasonkuhrt/3801443 to your computer and use it in GitHub Desktop.
Save jasonkuhrt/3801443 to your computer and use it in GitHub Desktop.
Attempting to cleanly bring jade to meteor
Package.describe({
summary: "jade's indentation-based html syntax"
});
var jade = require('/usr/local/lib/node_modules/jade');
var fs = require('fs');
var path = require('path');
var html_scanner = require('/Users/jasonkuhrt/code/meteor/packages/templating/html_scanner.js');
Package.register_extension("jade", function (bundle, source_path, serve_path, where) {
var jade_string = fs.readFileSync(source_path).toString('utf8')
var html_string = jade.compile(jade_string)()
var html_scanned = html_scanner.scan(html_string)
var path_part = path.dirname(serve_path);
if (path_part === '.')
path_part = '';
if (path_part.length && path_part !== '/')
path_part = path_part + "/";
var ext = path.extname(source_path);
var basename = path.basename(serve_path, ext);
serve_path = path_part + "template." + basename + ".js";
bundle.add_resource({
type: "js",
path: serve_path,
data: new Buffer(html_scanned.js),
where: where
});
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment