Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from daraser/master
Support for partials, some documentation and example project
- Loading branch information
Showing
7 changed files
with
164 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,106 @@ | ||
express3-dot | ||
============ | ||
|
||
doT stub for Express 3.x with caching and layout support | ||
doT stub for Express 3.x with caching and layout support. This an edited version with patial loading support. | ||
|
||
## Install | ||
|
||
Install original repository | ||
|
||
``` | ||
$ npm install express-dot | ||
``` | ||
|
||
or you can use my fork on github | ||
|
||
``` | ||
$ npm install https://www.github.com/daraser/express-dot/tarball/master | ||
``` | ||
Warnning not tested yet | ||
|
||
##Setup | ||
|
||
``` | ||
... | ||
// load express doT | ||
var doT = require('express-dot'); | ||
// (optional) set globals any thing you want to be exposed by this in {{= }} and in def {{# }} | ||
doT.setGlobals({ ... }); | ||
// setup rendering | ||
app.configure(function() { | ||
... | ||
// set views folder | ||
app.set('views', __dirname + '/views'); | ||
// doT engine | ||
app.set('view engine', 'dot' ); | ||
app.engine('dot', doT.__express ); | ||
... | ||
}); | ||
app.get('/', function(req, res){ | ||
// you need to have in views folder | ||
res.render('index', { }); | ||
}) | ||
``` | ||
|
||
## Options | ||
|
||
You can set up parts of rendering | ||
|
||
``` | ||
... | ||
res.render( | ||
'...', // current body template will be passed to layout template as {{=it.body}} | ||
{ | ||
// cache should be set to true in production enviroment. | ||
cache : false, | ||
// null - default behavior (will look for [viewDir]/layout.dot file; | ||
// boolean - makes doT render without layout file, | ||
// string path - looks for *.dot file to use for layout | ||
layout : false, | ||
// any other data which you want to be exposed for the template by {{=it.<myParam>}} | ||
... | ||
}, | ||
function(err, str_template){ | ||
// callback | ||
} | ||
); | ||
... | ||
``` | ||
## Globals | ||
|
||
Globals are exposed as {{#def}} and {{= this}}. So anything you want to use globaly should be exposed. | ||
|
||
``` | ||
... | ||
doT.setGlobals({ | ||
// set any function or property to be exposed in template | ||
..., | ||
// global configuration | ||
// default is false, set true in production enviroment to cache partials | ||
partialCache : false, | ||
// reserved functionality will throw error if globals have | ||
// load is reserved for partial loading. {{#def.load('/patials/sample.dot')}} it will load partial template from | ||
// __dirname + file path | ||
load : function(path ){ ... } | ||
}); | ||
... | ||
``` | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
var express = require('express'); | ||
var app = express(); | ||
|
||
// load express doT | ||
var doT = require('express-dot'); | ||
|
||
app.configure(function() { | ||
|
||
// set views folder | ||
app.set('views', __dirname); | ||
|
||
// doT engine | ||
app.set('view engine', 'dot' ); | ||
app.engine('dot', doT.__express ); | ||
|
||
}); | ||
|
||
// respond | ||
app.get('/', function(req, res, next){ | ||
// you need to have in views folder | ||
res.render('index', { }); | ||
}); | ||
|
||
app.listen(3000); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Hello world{{#def.load('/partial.dot')}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
<html> | ||
<body> | ||
{{=it.body}} | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
! |