https://github.com/i7eo/egg-view-liquid
egg view plugin for liquidJs
https://github.com/i7eo/egg-view-liquid
egg egg-plugin nodejs
Last synced: 10 months ago
JSON representation
egg view plugin for liquidJs
- Host: GitHub
- URL: https://github.com/i7eo/egg-view-liquid
- Owner: i7eo
- Created: 2020-09-10T02:34:58.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-12-15T05:29:29.000Z (over 2 years ago)
- Last Synced: 2024-03-15T08:47:30.531Z (about 2 years ago)
- Topics: egg, egg-plugin, nodejs
- Language: JavaScript
- Homepage:
- Size: 89.8 KB
- Stars: 53
- Watchers: 4
- Forks: 10
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
Awesome Lists containing this project
README
# egg-view-liquid
[![NPM version][npm-image]][npm-url]
[npm-image]: https://img.shields.io/npm/v/egg-view-liquid.svg
[npm-url]: https://npmjs.org/package/egg-view-liquid
egg view plugin for [liquid].
## :large_blue_circle: Internationalization
English | [中文文档](README_zh.md)
## Install
```bash
$ npm i egg-view-liquid --save
```
## Usage
```js
// {app_root}/config/plugin.js
exports.liquid = {
enable: true,
package: 'egg-view-liquid',
};
// {app_root}/config/config.default.js
exports.view = {
mapping: {
'.liquid': 'liquid',
},
};
// liquid config
exports.liquid = {};
```
Create a liquid file
```js
// app/view/hello.liquid
hello {{ data }}
```
Render it
```js
// app/controller/render.js
exports.liquid = async ctx => {
await ctx.render('hello.liquid', {
data: 'world',
});
};
```
The file will be compiled and cached, you can change `config.liquid.cache = false` to disable cache, it's disable in local env by default.
### Include
You can include both relative and absolute file.
Relative file is resolve from current file path.
```html
// app/view/a.liquid include app/view/b.liquid
{% render 'view/b' %}
```
Absolute file is resolve from `app/view`.
```html
// app/view/home.liquid include app/view/partial/menu.liquid
{% render 'partial/menu' %}
```
## Tips:
1. Use when you need to import files: `partial/xxx` not `/partial/xxx`
2. LiquidJs currently does not support direct use of method calls in files: `Hello {{helper.data()}}` can be replaced with tags or plugins if needed.
3. Now, if you want to use LiquidJs for like express-ejs-Layout's `contentfor`, just use LiquidJs's `block` instead.
## Configuration
see [config/config.default.js](config/config.default.js) for more detail.
## Questions & Suggestions
Please open an issue [here](https://github.com/eggjs/egg/issues).
## :stuck_out_tongue_winking_eye: Authors
[i7eo](https://i7eo.com/about/)
## :copyright: License
[License MIT](LICENSE)
[liquid]: https://github.com/harttle/liquidjs