
Express PostHTML
Install
npm i -S express-posthtml
Usage
Engine
Register PostHTML as Express View Engine
app.engine('html', require('express-posthtml'))
Options
Name | Type | Default | Description |
---|
plugins | {Array} | [] | PostHTML Plugins |
options | {Object} | {} | PostHTML Options |
Global
All views will render with this setup, if no local setup provided.
app.set('view options', { plugins: [], options: {} })
res.render('file.ext')
Local
View specific setup by adding plugins separately to the respective routes. Note that if you have set plugins globally, routes with local setup will not use the global setup by default.
app.set('view options', { options: { parser: pug }})
res.render('file.pug', { plugins: [...plugins] })
Extend
If views share common plugins (e.g for BEM Support), but view specific additions are necessary, use the extend option. Now the global setup is used and will be extended with the local plugins of the respective route.
app.set('view options', { plugins: [...plugins], options: {} })
res.render('file', { plugins: [], extend: true })
Example
import express from 'express'
import posthtml from 'express-posthtml'
const app = express()
app.engine('html', require('posthtml'))
const plugins = [
require('posthtml-bem')()
require('posthtml-expressions')()
]
const options = {}
app.set('views', )
app.set('view options', { plugins: plugins, options: options })
app.get('/', (req, res) => res.render('index.html'))
app.listen(3000)
Maintainers