LiquidJS is compatible to the express template engines. You can set liquidjs instance to the view engine option:
var { Liquid } = require('liquidjs');
var engine = new Liquid();
// register liquid engine
app.engine('liquid', engine.express());
app.set('views', './views'); // specify the views directory
app.set('view engine', 'liquid'); // set liquid to default
Working DemoHere’s a working demo for LiquidJS usage in Express.js: liquidjs/demo/express/.
Template Lookup
The root option will continue to work as templates root, as you can see in Render A Template File. Additionally, the views
option in express.js (as shown above) will also be respected. Say you have a template directory like:
.
├── views1/
│ └── hello.liquid
└── views2/
└── world.liquid
And you’re setting template root for liquidjs to views1
and expressjs to views2
:
var { Liquid } = require('liquidjs');
var engine = new Liquid({
root: './views1/'
});
app.engine('liquid', engine.express());
app.set('views', './views2'); // specify the views directory
app.set('view engine', 'liquid'); // set liquid to default
Both of hello.liquid
and world.liquid
can be resolved and rendered:
res.render('hello')
res.render('world')
Caching
Simply setting the cache option to true will enable template caching, as explained in Caching. It’s recommended to enable cache in production environment, which can be done by:
var { Liquid } = require('liquidjs');
var engine = new Liquid({
cache: process.env.NODE_ENV === 'production'
});