mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-26 13:45:15 -07:00
docs: fix links
+5
-4
@@ -35,7 +35,7 @@ echo '{{"hello" | capitalize}}' | npx liquidjs
|
|||||||
There's [a live demo][jsfiddle] on JSFiddle, and a list of demo projects in [the demo/ directory][demo-dir]
|
There's [a live demo][jsfiddle] on JSFiddle, and a list of demo projects in [the demo/ directory][demo-dir]
|
||||||
|
|
||||||
* [JSFiddle][jsfiddle]
|
* [JSFiddle][jsfiddle]
|
||||||
* [Demo for Node.js](/harttle/liquidjs/blob/master/demo/node/)
|
* [Demo for Node.js](/harttle/liquidjs/blob/master/demo/nodejs/)
|
||||||
* [Demo in TypeScript](/harttle/liquidjs/blob/master/demo/typescript/)
|
* [Demo in TypeScript](/harttle/liquidjs/blob/master/demo/typescript/)
|
||||||
* [Demo for Browser Usage](/harttle/liquidjs/blob/master/demo/browser/)
|
* [Demo for Browser Usage](/harttle/liquidjs/blob/master/demo/browser/)
|
||||||
* [Demo for Express.js Usage](/harttle/liquidjs/blob/master/demo/express/)
|
* [Demo for Express.js Usage](/harttle/liquidjs/blob/master/demo/express/)
|
||||||
@@ -43,7 +43,7 @@ There's [a live demo][jsfiddle] on JSFiddle, and a list of demo projects in [the
|
|||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
The tutorials contains a list of articles for advanced use cases, performance optimization and extending liquidjs.
|
The tutorial contains a list of articles for advanced use cases, performance optimization and extending liquidjs.
|
||||||
|
|
||||||
* [Render a Template File](/harttle/liquidjs/wiki/Render-a-File)
|
* [Render a Template File](/harttle/liquidjs/wiki/Render-a-File)
|
||||||
* [Caching](/harttle/liquidjs/wiki/Caching)
|
* [Caching](/harttle/liquidjs/wiki/Caching)
|
||||||
@@ -52,7 +52,6 @@ The tutorials contains a list of articles for advanced use cases, performance op
|
|||||||
* [Whitespace Control](/harttle/liquidjs/wiki/Whitespace-Control)
|
* [Whitespace Control](/harttle/liquidjs/wiki/Whitespace-Control)
|
||||||
* [Register Filters/Tags](/harttle/liquidjs/wiki/Register-Filters-Tags)
|
* [Register Filters/Tags](/harttle/liquidjs/wiki/Register-Filters-Tags)
|
||||||
* [Plugins](/harttle/liquidjs/wiki/Plugins)
|
* [Plugins](/harttle/liquidjs/wiki/Plugins)
|
||||||
* [Migrate to 9.0.0](/harttle/liquidjs/wiki/Migrate-to-9)
|
|
||||||
|
|
||||||
The [API Reference](https://harttle.github.io/liquidjs/classes/_liquid_.liquid.html) provides detailed descriptions for classes, methods and properties.
|
The [API Reference](https://harttle.github.io/liquidjs/classes/_liquid_.liquid.html) provides detailed descriptions for classes, methods and properties.
|
||||||
|
|
||||||
@@ -63,4 +62,6 @@ The [API Reference](https://harttle.github.io/liquidjs/classes/_liquid_.liquid.h
|
|||||||
* [Truthy and Falsy](/harttle/liquidjs/wiki/Truthy-and-Falsy)
|
* [Truthy and Falsy](/harttle/liquidjs/wiki/Truthy-and-Falsy)
|
||||||
|
|
||||||
[jsfiddle]: https://jsfiddle.net/x43eb0z6/
|
[jsfiddle]: https://jsfiddle.net/x43eb0z6/
|
||||||
[demo-dir]: https://github.com/harttle/liquidjs/tree/master/demo
|
[demo-dir]: https://github.com/harttle/liquidjs/tree/master/demo
|
||||||
|
[pp]: https://github.com/taylorhakes/promise-polyfill
|
||||||
|
[caniuse-promises]: http://caniuse.com/#feat=promises
|
||||||
+17
-2
@@ -1,3 +1,18 @@
|
|||||||
Please refer to [the operators document](https://shopify.github.io/liquid/basics/operators/) from Shopify. Operators supported by LiquidJS are:
|
## Operators
|
||||||
|
|
||||||
`==`, `!=`, `>`, `<`, `>=`, `<=`, `or`, `and`, `contains`.
|
Liquid operators are very simple and different. According to the [operators document](https://shopify.github.io/liquid/basics/operators/) from Shopify, there're 2 types of operators supported:
|
||||||
|
|
||||||
|
* Comparison operators: `==`, `!=`, `>`, `<`, `>=`, `<=`
|
||||||
|
* Logic operators: `or`, `and`, `contains`
|
||||||
|
|
||||||
|
Thus numerical operators are not supported and you cannot even plus two numbers `{{a + b}}`. Actually `+` is a valid variable name.
|
||||||
|
|
||||||
|
## Precedence
|
||||||
|
|
||||||
|
The comparison operators have higher precedence than logic operators.
|
||||||
|
|
||||||
|
## Associativity
|
||||||
|
|
||||||
|
Logic operators are evaluated from right to left, see [shopify docs][operator-order].
|
||||||
|
|
||||||
|
[operator-order]: https://help.shopify.com/en/themes/liquid/basics/operators#order-of-operations
|
||||||
|
|||||||
+7
-4
@@ -3,7 +3,9 @@ This article provides information about how to create and use a plugin
|
|||||||
|
|
||||||
## Write a Plugin
|
## Write a Plugin
|
||||||
|
|
||||||
We'll make a plugin to upper case every letter of the input,
|
A liquidjs plugin is simple function which takes the [Liquid class][liquid] as the first parameter and the Liquid instance for `this`. We can call liquidjs APIs on `this` to make certain changes, especially [register filters and tags][register].
|
||||||
|
|
||||||
|
Now we'll make a plugin to upper case every letter of the input,
|
||||||
save the following snippet to `upup.js`:
|
save the following snippet to `upup.js`:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
@@ -32,11 +34,12 @@ engine
|
|||||||
|
|
||||||
## Plugin List
|
## Plugin List
|
||||||
|
|
||||||
See <https://github.com/harttle/liquidjs#differences-and-limitations>.
|
Since this library excludes certain features that are available on the Shopify platform but not on the [Shopify/liquid](https://github.com/Shopify/liquid/) repo, see <https://github.com/harttle/liquidjs#differences-and-limitations>.
|
||||||
|
|
||||||
Since this library excludes certain features that are available on the Shopify platform but not on the [Shopify/liquid](https://github.com/Shopify/liquid/) repo, see the following plugins that backfill those features:
|
Here's a list of plugins that backfill those features. Feel free to add yours, this file is publicly editable.
|
||||||
|
|
||||||
* Sections Tags (WIP): https://github.com/harttle/liquidjs-section-tags
|
* Sections Tags (WIP): https://github.com/harttle/liquidjs-section-tags
|
||||||
* Color Filters: https://github.com/harttle/liquidjs-color-filters
|
* Color Filters: https://github.com/harttle/liquidjs-color-filters
|
||||||
|
|
||||||
> Feel free to add yours, this file is publicly editable.
|
[liquid]: https://harttle.land/liquidjs/classes/_liquid_.liquid.html
|
||||||
|
[register]: /harttle/liquidjs/wiki/Register-Filters-Tags
|
||||||
+33
@@ -46,6 +46,39 @@ var engine = new Liquid({
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Abstract File System
|
||||||
|
|
||||||
|
LiquidJS defines an abstract file system interface in [src/fs/ifs.ts][ifs] and the default implementation is [src/fs/node.ts][fs-node] for Node.js and [src/fs/browser.ts][fs-browser] for the browser bundle.
|
||||||
|
|
||||||
|
The `Liquid` constructor provides a [fs][fs] option to specify the file system implementation. It's supposed to be used to define customized template fetching logic, i.e. fetch template from a database table, like:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var engine = new Liquid({
|
||||||
|
fs: {
|
||||||
|
readFileSync (file) {
|
||||||
|
return db.model('Template').findByIdSync(file).text
|
||||||
|
},
|
||||||
|
await readFile (file) {
|
||||||
|
const template = await db.model('Template').findById(file)
|
||||||
|
return template.text
|
||||||
|
},
|
||||||
|
existsSync () {
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
await exists () {
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
resolve(root, file, ext) {
|
||||||
|
return file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
[fs]: https://harttle.land/liquidjs/interfaces/_liquid_options_.liquidoptions.html#fs
|
||||||
|
[ifs]: https://github.com/harttle/liquidjs/blob/master/src/fs/ifs.ts
|
||||||
|
[fs-node]: https://github.com/harttle/liquidjs/blob/master/src/fs/node.ts
|
||||||
|
[fs-browser]: https://github.com/harttle/liquidjs/blob/master/src/fs/browser.ts
|
||||||
[layout]: https://help.shopify.com/en/themes/liquid/tags/theme-tags#layout
|
[layout]: https://help.shopify.com/en/themes/liquid/tags/theme-tags#layout
|
||||||
[include]: https://help.shopify.com/themes/liquid/tags/theme-tags#include
|
[include]: https://help.shopify.com/themes/liquid/tags/theme-tags#include
|
||||||
[renderFile]: https://harttle.land/liquidjs/classes/_liquid_.liquid.html#renderfile
|
[renderFile]: https://harttle.land/liquidjs/classes/_liquid_.liquid.html#renderfile
|
||||||
|
|||||||
Reference in New Issue
Block a user