Liquid with Node.js
LiquidNode is a port of the original Liquid template engine from Ruby to Node.js. It uses Promises to support non-blocking/asynchronous variables, filters, and blocks.
Features
- Supports asynchronous variables, tags, functions and filters (helpers)
- Allows you to add custom tags and filters easily
- Uses bluebird for super-fast Promises/A+
- Supports full liquid syntax
- Based on original Ruby code
- Written in CoffeeScript
- High test coverage
What does it look like?
{% for product in products %} {{ product.name }} Only {{ product.price | price }} {{ product.description | prettyprint | paragraph }} {% endfor %}
Installation
npm install liquid-node --save
Usage
Liquid supports a very simple API based around the Liquid.Engine class. For standard use you can just pass it the content of a file and call render with an object.
Liquid = var engine = engine ; // or engine ;
Usage with Connect
app;
Registration of new filters
engine;
Registration of new Tags
Since the code is based on the Ruby implementation we use CoffeeScript's class
which is a little bit difficult to write in pure JavaScript.
Take a look at the existing tags
to see how to implement them.
: -> "that's me!" engineregisterTag "MyTag"MyTag
How to run the tests
npm test
Similar libraries
- darthapo's Liquid.js is liquid ported to JavaScript to be run within the browser. It doesn't handle asynchrony.
- tchype's Liquid.js is
liquid-node
wrapped to run in a browser.
License
LiquidNode is released under the MIT license.