Skip to content

Commit 76af43c

Browse files
committed
rebase with master
2 parents e1c3517 + 2f7b125 commit 76af43c

File tree

7 files changed

+44
-14
lines changed

7 files changed

+44
-14
lines changed

Readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
- [twig](https://github.com/justjohn/twig.js)
4040
- [liquid](https://github.com/leizongmin/tinyliquid) [(website)](http://liquidmarkup.org/)
4141
- [toffee](https://github.com/malgorithms/toffee)
42-
- [underscore](https://github.com/documentcloud/underscore) [(website)](http://documentcloud.github.com/underscore/)
42+
- [underscore](https://github.com/documentcloud/underscore) [(website)](http://underscorejs.org/#template)
4343
- [vash](https://github.com/kirbysayshi/vash)
4444
- [walrus](https://github.com/jeremyruppel/walrus) [(website)](http://documentup.com/jeremyruppel/walrus/)
4545
- [whiskers](https://github.com/gsf/whiskers.js)

lib/consolidate.js

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,6 +1126,8 @@ exports.nunjucks.render = function(str, options, fn) {
11261126
return promisify(fn, function (fn) {
11271127
try {
11281128
var engine = requires.nunjucks || (requires.nunjucks = require('nunjucks'));
1129+
if (options.settings && options.settings.views) engine.configure(options.settings.views);
1130+
11291131
var loader = options.loader;
11301132
if (loader) {
11311133
var env = new engine.Environment(new loader(options));
@@ -1224,16 +1226,20 @@ function reactBaseTmpl(data, options){
12241226
* The main render parser for React bsaed templates
12251227
*/
12261228
function reactRenderer(type){
1227-
1228-
// Ensure JSX is transformed on require
1229-
if (!require.extensions['.jsx']) {
1230-
require.extensions['.jsx'] = requireReact;
1231-
}
1232-
1233-
// Supporting .react extension as well as test cases
1234-
// Using .react extension is not recommended.
1235-
if (!require.extensions['.react']) {
1236-
require.extensions['.react'] = requireReact;
1229+
1230+
if (require.extensions) {
1231+
1232+
// Ensure JSX is transformed on require
1233+
if (!require.extensions['.jsx']) {
1234+
require.extensions['.jsx'] = requireReact;
1235+
}
1236+
1237+
// Supporting .react extension as well as test cases
1238+
// Using .react extension is not recommended.
1239+
if (!require.extensions['.react']) {
1240+
require.extensions['.react'] = requireReact;
1241+
}
1242+
12371243
}
12381244

12391245
// Return rendering fx

test/consolidate.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ require('./shared').test('ractive');
3939
require('./shared/partials').test('ractive');
4040
require('./shared').test('nunjucks');
4141
require('./shared/filters').test('nunjucks');
42+
require('./shared/includes').test('nunjucks');
4243
require('./shared').test('htmling');
4344
require('./shared/react').test('react');
4445
require('./shared').test('vash');
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<header></header>{%block content%}{%endblock%}<footer></footer>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{% include 'user.nunjucks' %}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{% extends '_base_layout.nunjucks' %}
2+
3+
{% block content %}<p>{{user.name}}</p>{% endblock %}

test/shared/includes.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ var should = require('should');
66
exports.test = function(name) {
77
var user = { name: 'Tobi' };
88

9-
describe(name, function(){
9+
describe(name, function() {
1010

1111
it('should support includes', function(done) {
1212
var str = fs.readFileSync('test/fixtures/' + name + '/include.' + name).toString();
1313
var locals = { user: user, includeDir: 'test/fixtures/' + name };
14-
15-
cons[name].render(str, locals, function(err, html){
14+
15+
cons[name].render(str, locals, function(err, html) {
1616
if (err) return done(err);
1717
try{
1818
if (name === 'liquid') {
@@ -26,5 +26,23 @@ exports.test = function(name) {
2626
}
2727
});
2828
});
29+
30+
if (name == 'nunjucks') {
31+
it('should support extending views', function (done) {
32+
var str = fs.readFileSync('test/fixtures/' + name + '/layouts.' + name).toString();
33+
34+
var locals = {user: user, settings: {views: 'test/fixtures/' + name}};
35+
36+
cons[name].render(str, locals, function (err, html) {
37+
if (err) return done(err);
38+
try {
39+
html.should.eql('<header></header><p>Tobi</p><footer></footer>');
40+
return done();
41+
} catch (e) {
42+
return done(e);
43+
}
44+
});
45+
});
46+
}
2947
});
3048
};

0 commit comments

Comments
 (0)