Layout support for ejs in express.
JavaScript
Switch branches/tags
Nothing to show
Pull request Compare This branch is 35 commits behind Soarez:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.gitignore
.npmignore
.travis.yml
LICENSE
Makefile
Readme.md
package.json

Readme.md

express-ejs-layouts

Layout support for ejs in express.

build status

Installation

npm install express-ejs-layouts

Usage

var express = require('express')
  , app = express()
  , expressLayouts = require('express-ejs-layouts')

app.set('view engine', 'ejs')
app.set('layout', 'myLayout') // defaults to 'layout'     

app.use(expressLayouts)
app.use(app.router)

app.get('/', function(req, res){
  res.render('aView', { layout: 'someSpecificLayout' })
})

app.listen(3000)

contentFor

A view

somebody
<%- contentFor('foo') %>
club
<%- contentFor('bar') %>
fight

With a layout

<%-bar%> <%-foo%>
<%-body%>

Renders

fight club
somebody

script blocks extraction

If you like to place all the script blocks at the end, you can do it like this:

app.set("layout extractScripts", true)

A view

something<script>somejs<script>something

With a layout

...
<body>
<%- body %>
<%- script %>
</body>

Renders

...
<body>
somethingsomething
<script>somejs<script>
</body>

Enabling invididually:

req.render('view', { parseScript: true })

Running tests

Clone the rep

make test

License

MIT