express-partials
Advanced tools
Comparing version 0.0.2 to 0.0.3
42
index.js
@@ -1,3 +0,2 @@ | ||
var ejs = require('ejs') | ||
, path = require('path') | ||
var path = require('path') | ||
, exists = path.existsSync | ||
@@ -21,2 +20,3 @@ , resolve = path.resolve | ||
* app.use(partials()); | ||
* partials.register('coffee',require('coffeekup').render); | ||
* app.get('/',function(req,res,next){ | ||
@@ -75,4 +75,35 @@ * res.render('index.ejs') // renders layout.ejs with index.ejs as `body`. | ||
/*** | ||
* Allow to register a specific rendering | ||
* function for a given extension. | ||
* (Similar to Express 2.x register() function.) | ||
*/ | ||
var register = function(ext,render) { | ||
if(ext[0] !== '.') { | ||
ext = '.' + ext; | ||
} | ||
register[ext] = render; | ||
}; | ||
module.exports.register = register; | ||
/** | ||
* Automatically assign a render() function | ||
* from a module of the same name if none | ||
* has been registered. | ||
*/ | ||
var renderer = function(ext) { | ||
if(ext[0] !== '.') { | ||
ext = '.' + ext; | ||
} | ||
return register[ext] != null | ||
? register[ext] | ||
: register[ext] = require(ext.slice(1)).render; | ||
}; | ||
module.exports.renderer = renderer; | ||
/** | ||
* Memory cache for resolved object names. | ||
@@ -221,3 +252,3 @@ */ | ||
var root = this.app.get('views') || process.cwd() + '/views' | ||
, ext = extname(view) || '.' + (this.app.get('view engine') || 'ejs') | ||
, ext = extname(view) || '.' + (this.app.get('view engine')||'ejs') | ||
, file = lookup(root, view, ext); | ||
@@ -238,4 +269,3 @@ | ||
} | ||
// TODO Support other templates (but it's sync now...) | ||
return ejs.render(source, options); | ||
return renderer(ext)(source, options); | ||
} | ||
@@ -282,2 +312,2 @@ | ||
} | ||
} | ||
} |
@@ -5,3 +5,3 @@ { | ||
"description": "Express 3.x Layout & Partial support.", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"repository": { | ||
@@ -14,3 +14,2 @@ "url": "https://github.com/publicclass/express-partials" | ||
"dependencies": { | ||
"ejs": "*" | ||
}, | ||
@@ -20,3 +19,5 @@ "devDependencies": { | ||
"mocha": "*", | ||
"should": "*" | ||
"should": "*", | ||
"ejs": "*", | ||
"jade": "*" | ||
}, | ||
@@ -23,0 +24,0 @@ "scripts": { |
@@ -20,2 +20,5 @@ # express-partials | ||
app.use(partials()); | ||
// optionally register a template engine (defaults to ejs) | ||
partials.register('.jade',require('jade').render); | ||
@@ -39,5 +42,6 @@ app.get('/',function(req,res,next){ | ||
## Template Support | ||
## Template Support (tested) | ||
- `ejs` (actually hard coded right now, but feel free to __fork and help!__) | ||
- [ejs](https://github.com/visionmedia/ejs) | ||
- [jade](https://github.com/visionmedia/jade) | ||
@@ -48,3 +52,3 @@ | ||
- More Tests! | ||
- More templates. | ||
- More template engines. | ||
@@ -51,0 +55,0 @@ |
@@ -45,2 +45,12 @@ var express = require('express') | ||
partials.register('.j',require('jade').render); | ||
app.get('/register/no-layout',function(req,res,next){ | ||
res.render('index.j',{hello:'world',layout:false}) | ||
}) | ||
app.engine('.j',require('jade').__express); | ||
app.get('/register',function(req,res,next){ | ||
res.render('index.j',{hello:'world'}) | ||
}) | ||
describe('app',function(){ | ||
@@ -142,3 +152,27 @@ describe('GET /',function(){ | ||
}) | ||
}) | ||
describe('GET /register/no-layout',function(){ | ||
it('should render index.j as a Jade template',function(done){ | ||
request(app) | ||
.get('/register/no-layout') | ||
.end(function(res){ | ||
res.should.have.status(200); | ||
res.body.should.equal('<h2>Jade says hello world</h2>'); | ||
done(); | ||
}) | ||
}) | ||
}) | ||
describe('GET /register',function(){ | ||
it('should render index.j as a Jade template with layout.j as Jade layout',function(done){ | ||
request(app) | ||
.get('/register') | ||
.end(function(res){ | ||
res.should.have.status(200); | ||
res.body.should.equal('<html><head><title>Jade layout</title></head><body><h2>Jade says hello world</h2></body></html>'); | ||
done(); | ||
}) | ||
}) | ||
}) | ||
}) |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Wildcard dependency
QualityPackage has a dependency with a floating version range. This can cause issues if the dependency publishes a new major version.
Found 1 instance in 1 package
18016
0
15
502
0
87
5
3
- Removedejs@*
- Removedansi-styles@4.3.0(transitive)
- Removedasync@3.2.6(transitive)
- Removedbalanced-match@1.0.2(transitive)
- Removedbrace-expansion@1.1.112.0.1(transitive)
- Removedchalk@4.1.2(transitive)
- Removedcolor-convert@2.0.1(transitive)
- Removedcolor-name@1.1.4(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removedejs@3.1.10(transitive)
- Removedfilelist@1.0.4(transitive)
- Removedhas-flag@4.0.0(transitive)
- Removedjake@10.9.2(transitive)
- Removedminimatch@3.1.25.1.6(transitive)
- Removedsupports-color@7.2.0(transitive)