Merge pull request #515 from jjclark1982/master
Allow requiring ".handlebars" files within Node.js scripts
This commit is contained in:
@@ -21,6 +21,17 @@ Handlebars.create = create;
|
||||
|
||||
module.exports = Handlebars; // instantiate an instance
|
||||
|
||||
// Publish a Node.js require() handler for .handlebars and .hbs files
|
||||
if (require.extensions) {
|
||||
var extension = function(module, filename) {
|
||||
var fs = require("fs");
|
||||
var templateString = fs.readFileSync(filename, "utf8");
|
||||
module.exports = Handlebars.compile(templateString);
|
||||
};
|
||||
require.extensions[".handlebars"] = extension;
|
||||
require.extensions[".hbs"] = extension;
|
||||
}
|
||||
|
||||
// BEGIN(BROWSER)
|
||||
|
||||
// END(BROWSER)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{foo}}
|
||||
@@ -0,0 +1 @@
|
||||
Hello, {{name}}!
|
||||
@@ -1502,3 +1502,27 @@ test('isEmpty', function() {
|
||||
equal(Handlebars.Utils.isEmpty('foo'), false);
|
||||
equal(Handlebars.Utils.isEmpty({bar: 1}), false);
|
||||
});
|
||||
|
||||
if (typeof(require) !== 'undefined') {
|
||||
suite('Require');
|
||||
|
||||
test('Load .handlebars files with require()', function() {
|
||||
var template = require("./example_1");
|
||||
assert.deepEqual(template, require("./example_1.handlebars"));
|
||||
|
||||
var expected = 'foo\n';
|
||||
var result = template({foo: "foo"});
|
||||
|
||||
equal(result, expected);
|
||||
});
|
||||
|
||||
test('Load .hbs files with require()', function() {
|
||||
var template = require("./example_2");
|
||||
assert.deepEqual(template, require("./example_2.hbs"));
|
||||
|
||||
var expected = 'Hello, World!\n';
|
||||
var result = template({name: "World"});
|
||||
|
||||
equal(result, expected);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user