@skeptools/skep-organization-project 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/.jsii +2047 -5
  2. package/API.md +2084 -1758
  3. package/lib/index.js +7 -3
  4. package/lib/skep-organization-project.js +6 -6
  5. package/node_modules/commander/LICENSE +22 -0
  6. package/node_modules/commander/Readme.md +1134 -0
  7. package/node_modules/commander/esm.mjs +16 -0
  8. package/node_modules/commander/index.js +27 -0
  9. package/node_modules/commander/lib/argument.js +147 -0
  10. package/node_modules/commander/lib/command.js +2179 -0
  11. package/node_modules/commander/lib/error.js +45 -0
  12. package/node_modules/commander/lib/help.js +464 -0
  13. package/node_modules/commander/lib/option.js +331 -0
  14. package/node_modules/commander/lib/suggestSimilar.js +100 -0
  15. package/node_modules/commander/package-support.json +16 -0
  16. package/node_modules/commander/package.json +80 -0
  17. package/node_modules/commander/typings/index.d.ts +889 -0
  18. package/node_modules/liquidjs/README.md +125 -72
  19. package/node_modules/liquidjs/bin/liquid.js +128 -13
  20. package/node_modules/liquidjs/dist/build/fs-impl-browser.spec.d.ts +1 -0
  21. package/node_modules/liquidjs/dist/{emitters → build}/streamed-emitter-browser.d.ts +1 -1
  22. package/node_modules/liquidjs/dist/build/streamed-emitter-browser.spec.d.ts +1 -0
  23. package/node_modules/liquidjs/dist/cache/cache.d.ts +1 -1
  24. package/node_modules/liquidjs/dist/cache/index.d.ts +2 -0
  25. package/node_modules/liquidjs/dist/cache/lru.spec.d.ts +1 -0
  26. package/node_modules/liquidjs/dist/context/block-mode.d.ts +1 -2
  27. package/node_modules/liquidjs/dist/context/context.d.ts +5 -3
  28. package/node_modules/liquidjs/dist/context/context.spec.d.ts +1 -0
  29. package/node_modules/liquidjs/dist/context/index.d.ts +3 -0
  30. package/node_modules/liquidjs/dist/context/scope.d.ts +3 -3
  31. package/node_modules/liquidjs/dist/drop/blank-drop.d.ts +1 -1
  32. package/node_modules/liquidjs/dist/drop/index.d.ts +7 -0
  33. package/node_modules/liquidjs/dist/emitters/index.d.ts +4 -0
  34. package/node_modules/liquidjs/dist/emitters/keeping-type-emitter.d.ts +1 -1
  35. package/node_modules/liquidjs/dist/filters/array.d.ts +26 -0
  36. package/node_modules/liquidjs/dist/filters/date.d.ts +6 -0
  37. package/node_modules/liquidjs/dist/filters/html.d.ts +5 -0
  38. package/node_modules/liquidjs/dist/filters/index.d.ts +2 -0
  39. package/node_modules/liquidjs/dist/{builtin/filters → filters}/math.d.ts +3 -3
  40. package/node_modules/liquidjs/dist/filters/misc.d.ts +18 -0
  41. package/node_modules/liquidjs/dist/{builtin/filters → filters}/string.d.ts +13 -3
  42. package/node_modules/liquidjs/dist/filters/url.d.ts +14 -0
  43. package/node_modules/liquidjs/dist/fs/fs-impl.spec.d.ts +1 -0
  44. package/node_modules/liquidjs/dist/fs/index.d.ts +2 -0
  45. package/node_modules/liquidjs/dist/fs/loader.spec.d.ts +1 -0
  46. package/node_modules/liquidjs/dist/fs/node-require.d.ts +1 -1
  47. package/node_modules/liquidjs/dist/index.d.ts +15 -0
  48. package/node_modules/liquidjs/dist/liquid-options.d.ts +13 -10
  49. package/node_modules/liquidjs/dist/liquid-options.spec.d.ts +1 -0
  50. package/node_modules/liquidjs/dist/liquid.browser.esm.js +2836 -2359
  51. package/node_modules/liquidjs/dist/liquid.browser.min.js +1 -1
  52. package/node_modules/liquidjs/dist/liquid.browser.min.js.map +1 -1
  53. package/node_modules/liquidjs/dist/liquid.browser.umd.js +3921 -3156
  54. package/node_modules/liquidjs/dist/liquid.browser.umd.js.map +1 -1
  55. package/node_modules/liquidjs/dist/liquid.d.ts +22 -26
  56. package/node_modules/liquidjs/dist/liquid.node.cjs.js +3289 -4062
  57. package/node_modules/liquidjs/dist/liquid.node.esm.js +2841 -2372
  58. package/node_modules/liquidjs/dist/parser/filter-arg.d.ts +2 -2
  59. package/node_modules/liquidjs/dist/parser/index.d.ts +4 -0
  60. package/node_modules/liquidjs/dist/parser/parse-stream.d.ts +3 -4
  61. package/node_modules/liquidjs/dist/parser/parse-stream.spec.d.ts +1 -0
  62. package/node_modules/liquidjs/dist/parser/parser.d.ts +6 -9
  63. package/node_modules/liquidjs/dist/parser/token-kind.d.ts +1 -0
  64. package/node_modules/liquidjs/dist/parser/tokenizer.d.ts +21 -25
  65. package/node_modules/liquidjs/dist/parser/tokenizer.spec.d.ts +1 -0
  66. package/node_modules/liquidjs/dist/parser/whitespace-ctrl.d.ts +1 -1
  67. package/node_modules/liquidjs/dist/render/boolean.spec.d.ts +1 -0
  68. package/node_modules/liquidjs/dist/render/expression.d.ts +4 -8
  69. package/node_modules/liquidjs/dist/render/expression.spec.d.ts +1 -0
  70. package/node_modules/liquidjs/dist/render/index.d.ts +4 -0
  71. package/node_modules/liquidjs/dist/render/operator.d.ts +6 -4
  72. package/node_modules/liquidjs/dist/render/render.d.ts +3 -3
  73. package/node_modules/liquidjs/dist/render/render.spec.d.ts +1 -0
  74. package/node_modules/liquidjs/dist/render/string.spec.d.ts +1 -0
  75. package/node_modules/liquidjs/dist/tags/assign.d.ts +7 -0
  76. package/node_modules/liquidjs/dist/tags/block.d.ts +8 -0
  77. package/node_modules/liquidjs/dist/tags/break.d.ts +4 -0
  78. package/node_modules/liquidjs/dist/tags/capture.d.ts +8 -0
  79. package/node_modules/liquidjs/dist/tags/case.d.ts +11 -0
  80. package/node_modules/liquidjs/dist/tags/comment.d.ts +5 -0
  81. package/node_modules/liquidjs/dist/tags/continue.d.ts +4 -0
  82. package/node_modules/liquidjs/dist/tags/cycle.d.ts +7 -0
  83. package/node_modules/liquidjs/dist/tags/decrement.d.ts +6 -0
  84. package/node_modules/liquidjs/dist/tags/echo.d.ts +6 -0
  85. package/node_modules/liquidjs/dist/tags/for.d.ts +10 -0
  86. package/node_modules/liquidjs/dist/tags/if.d.ts +10 -0
  87. package/node_modules/liquidjs/dist/tags/include.d.ts +7 -0
  88. package/node_modules/liquidjs/dist/tags/increment.d.ts +6 -0
  89. package/node_modules/liquidjs/dist/tags/index.d.ts +24 -0
  90. package/node_modules/liquidjs/dist/tags/inline-comment.d.ts +5 -0
  91. package/node_modules/liquidjs/dist/tags/layout.d.ts +9 -0
  92. package/node_modules/liquidjs/dist/tags/liquid.d.ts +6 -0
  93. package/node_modules/liquidjs/dist/tags/raw.d.ts +6 -0
  94. package/node_modules/liquidjs/dist/tags/render.d.ts +17 -0
  95. package/node_modules/liquidjs/dist/tags/tablerow.d.ts +9 -0
  96. package/node_modules/liquidjs/dist/tags/unless.d.ts +11 -0
  97. package/node_modules/liquidjs/dist/template/filter-impl-options.d.ts +12 -0
  98. package/node_modules/liquidjs/dist/template/filter.d.ts +13 -0
  99. package/node_modules/liquidjs/dist/template/filter.spec.d.ts +1 -0
  100. package/node_modules/liquidjs/dist/template/{tag/hash.d.ts → hash.d.ts} +6 -6
  101. package/node_modules/liquidjs/dist/template/hash.spec.d.ts +1 -0
  102. package/node_modules/liquidjs/dist/template/html.d.ts +4 -5
  103. package/node_modules/liquidjs/dist/template/index.d.ts +10 -0
  104. package/node_modules/liquidjs/dist/template/output.d.ts +3 -3
  105. package/node_modules/liquidjs/dist/template/output.spec.d.ts +1 -0
  106. package/node_modules/liquidjs/dist/template/tag-options-adapter.d.ts +10 -0
  107. package/node_modules/liquidjs/dist/template/tag.d.ts +18 -0
  108. package/node_modules/liquidjs/dist/template/value.d.ts +8 -6
  109. package/node_modules/liquidjs/dist/template/value.spec.d.ts +1 -0
  110. package/node_modules/liquidjs/dist/tokens/delimited-token.d.ts +4 -3
  111. package/node_modules/liquidjs/dist/tokens/filtered-value-token.d.ts +17 -0
  112. package/node_modules/liquidjs/dist/tokens/index.d.ts +18 -0
  113. package/node_modules/liquidjs/dist/tokens/liquid-tag-token.d.ts +5 -0
  114. package/node_modules/liquidjs/dist/tokens/literal-token.d.ts +2 -0
  115. package/node_modules/liquidjs/dist/tokens/number-token.d.ts +6 -4
  116. package/node_modules/liquidjs/dist/tokens/operator-token.d.ts +18 -1
  117. package/node_modules/liquidjs/dist/tokens/property-access-token.d.ts +7 -4
  118. package/node_modules/liquidjs/dist/tokens/quoted-token.d.ts +1 -0
  119. package/node_modules/liquidjs/dist/tokens/tag-token.d.ts +4 -2
  120. package/node_modules/liquidjs/dist/tokens/token.d.ts +1 -1
  121. package/node_modules/liquidjs/dist/tokens/top-level-token.d.ts +4 -0
  122. package/node_modules/liquidjs/dist/tokens/value-token.d.ts +2 -1
  123. package/node_modules/liquidjs/dist/util/assert.spec.d.ts +1 -0
  124. package/node_modules/liquidjs/dist/util/async.d.ts +0 -1
  125. package/node_modules/liquidjs/dist/util/async.spec.d.ts +1 -0
  126. package/node_modules/liquidjs/dist/util/character.d.ts +3 -1
  127. package/node_modules/liquidjs/dist/util/error.d.ts +3 -2
  128. package/node_modules/liquidjs/dist/util/index.d.ts +11 -0
  129. package/node_modules/liquidjs/dist/util/liquid-date.d.ts +1 -0
  130. package/node_modules/liquidjs/dist/util/literal.d.ts +3 -3
  131. package/node_modules/liquidjs/dist/util/operator-trie.d.ts +13 -4
  132. package/node_modules/liquidjs/dist/util/strftime.d.ts +1 -1
  133. package/node_modules/liquidjs/dist/util/strftime.spec.d.ts +1 -0
  134. package/node_modules/liquidjs/dist/util/timezone-date.d.ts +6 -1
  135. package/node_modules/liquidjs/dist/util/timezone-date.spec.d.ts +1 -0
  136. package/node_modules/liquidjs/dist/util/type-guards.d.ts +1 -11
  137. package/node_modules/liquidjs/dist/util/underscore.d.ts +6 -8
  138. package/node_modules/liquidjs/dist/util/underscore.spec.d.ts +1 -0
  139. package/node_modules/liquidjs/package.json +33 -37
  140. package/package.json +29 -28
  141. package/.gitattributes +0 -23
  142. package/.projenrc.ts +0 -31
  143. package/node_modules/liquidjs/CHANGELOG.md +0 -1015
  144. package/node_modules/liquidjs/dist/builtin/filters/array.d.ts +0 -15
  145. package/node_modules/liquidjs/dist/builtin/filters/date.d.ts +0 -2
  146. package/node_modules/liquidjs/dist/builtin/filters/html.d.ts +0 -4
  147. package/node_modules/liquidjs/dist/builtin/filters/index.d.ts +0 -7
  148. package/node_modules/liquidjs/dist/builtin/filters/misc.d.ts +0 -5
  149. package/node_modules/liquidjs/dist/builtin/filters/url.d.ts +0 -2
  150. package/node_modules/liquidjs/dist/builtin/tags/assign.d.ts +0 -3
  151. package/node_modules/liquidjs/dist/builtin/tags/block.d.ts +0 -8
  152. package/node_modules/liquidjs/dist/builtin/tags/break.d.ts +0 -5
  153. package/node_modules/liquidjs/dist/builtin/tags/capture.d.ts +0 -3
  154. package/node_modules/liquidjs/dist/builtin/tags/case.d.ts +0 -3
  155. package/node_modules/liquidjs/dist/builtin/tags/comment.d.ts +0 -3
  156. package/node_modules/liquidjs/dist/builtin/tags/continue.d.ts +0 -5
  157. package/node_modules/liquidjs/dist/builtin/tags/cycle.d.ts +0 -3
  158. package/node_modules/liquidjs/dist/builtin/tags/decrement.d.ts +0 -3
  159. package/node_modules/liquidjs/dist/builtin/tags/echo.d.ts +0 -3
  160. package/node_modules/liquidjs/dist/builtin/tags/for.d.ts +0 -3
  161. package/node_modules/liquidjs/dist/builtin/tags/if.d.ts +0 -3
  162. package/node_modules/liquidjs/dist/builtin/tags/include.d.ts +0 -3
  163. package/node_modules/liquidjs/dist/builtin/tags/increment.d.ts +0 -3
  164. package/node_modules/liquidjs/dist/builtin/tags/index.d.ts +0 -5
  165. package/node_modules/liquidjs/dist/builtin/tags/inline-comment.d.ts +0 -3
  166. package/node_modules/liquidjs/dist/builtin/tags/layout.d.ts +0 -3
  167. package/node_modules/liquidjs/dist/builtin/tags/liquid.d.ts +0 -3
  168. package/node_modules/liquidjs/dist/builtin/tags/raw.d.ts +0 -3
  169. package/node_modules/liquidjs/dist/builtin/tags/render.d.ts +0 -13
  170. package/node_modules/liquidjs/dist/builtin/tags/tablerow.d.ts +0 -3
  171. package/node_modules/liquidjs/dist/builtin/tags/unless.d.ts +0 -3
  172. package/node_modules/liquidjs/dist/parser/match-operator.d.ts +0 -2
  173. package/node_modules/liquidjs/dist/template/filter/filter-impl-options.d.ts +0 -4
  174. package/node_modules/liquidjs/dist/template/filter/filter-impl.d.ts +0 -6
  175. package/node_modules/liquidjs/dist/template/filter/filter-map.d.ts +0 -13
  176. package/node_modules/liquidjs/dist/template/filter/filter.d.ts +0 -12
  177. package/node_modules/liquidjs/dist/template/tag/tag-impl-options.d.ts +0 -10
  178. package/node_modules/liquidjs/dist/template/tag/tag-impl.d.ts +0 -6
  179. package/node_modules/liquidjs/dist/template/tag/tag-map.d.ts +0 -6
  180. package/node_modules/liquidjs/dist/template/tag/tag.d.ts +0 -10
  181. package/node_modules/liquidjs/dist/tokens/toplevel-token.d.ts +0 -4
  182. package/node_modules/liquidjs/dist/types.d.ts +0 -30
  183. package/node_modules/liquidjs/dist/util/collection.d.ts +0 -2
  184. /package/node_modules/liquidjs/dist/{fs/browser.d.ts → build/fs-impl-browser.d.ts} +0 -0
  185. /package/node_modules/liquidjs/dist/fs/{node.d.ts → fs-impl.d.ts} +0 -0
  186. /package/node_modules/liquidjs/dist/{parser/parse-string-literal.d.ts → render/string.d.ts} +0 -0
@@ -2,7 +2,7 @@
2
2
  [![npm version](https://img.shields.io/npm/v/liquidjs.svg?logo=npm&style=flat-square)](https://www.npmjs.org/package/liquidjs)
3
3
  [![npm downloads](https://img.shields.io/npm/dm/liquidjs.svg?style=flat-square)](https://www.npmjs.org/package/liquidjs)
4
4
  [![Coverage](https://img.shields.io/coveralls/harttle/liquidjs.svg?style=flat-square)](https://coveralls.io/github/harttle/liquidjs?branch=master)
5
- [![Build Status](https://img.shields.io/github/workflow/status/harttle/liquidjs/Check/master.svg?style=flat-square)](https://github.com/harttle/liquidjs/actions/workflows/check.yml?query=branch%3Amaster)
5
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/harttle/liquidjs/ci-build.yml?branch=master&style=flat-square)](https://github.com/harttle/liquidjs/actions/workflows/ci-build.yml?query=branch%3Amaster)
6
6
  [![DUB license](https://img.shields.io/dub/l/vibe-d.svg?style=flat-square)](https://github.com/harttle/liquidjs/blob/master/LICENSE)
7
7
  [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/harttle/liquidjs)
8
8
 
@@ -11,7 +11,7 @@ A simple, expressive and safe [Shopify][shopify/liquid] / Github Pages compatibl
11
11
 
12
12
  * [Documentation][doc]
13
13
  * Please star [LiquidJS on GitHub][github]!
14
- * Support [LiquidJS on Open Collective][oc] or [Patreon][patreon]
14
+ * Financial support via [Github Sponsors](https://github.com/sponsors/harttle), or [LiquidJS on Open Collective][oc]
15
15
 
16
16
  <p align="center"><a href="https://liquidjs.com"><img height="155px" width="155px" src="https://liquidjs.com/icon/mstile-310x310.png" alt="logo"></a></p>
17
17
 
@@ -42,28 +42,61 @@ Or use the UMD bundle from jsDelivr:
42
42
  <script src="https://cdn.jsdelivr.net/npm/liquidjs/dist/liquid.browser.min.js"></script>
43
43
  ```
44
44
 
45
- More details, refer to [The Setup Guide][setup].
45
+ Or render directly from CLI using npx:
46
46
 
47
- ## Related Projects
47
+ ```bash
48
+ npx liquidjs --template 'Hello, {{ name }}!' --context '{"name": "Snake"}'
49
+ ```
50
+
51
+ For more details, refer to the [Setup Guide][setup].
52
+
53
+ ## Who's Using LiquidJS?
54
+
55
+ - [Eleventy](https://www.11ty.dev/): Eleventy, a simpler static site generator.
56
+ - [Opensense](https://www.opensense.com/): The smarter way to send email.
57
+ - [Directus](https://docs.directus.io/): an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database.
58
+ - [Semgrep](https://github.com/returntocorp/semgrep): Lightweight static analysis for many languages.
59
+ - [Rock](https://www.rockrms.com/): An open source CMS, Relationship Management System (RMS) and Church Management System (ChMS) all rolled into one.
60
+ - [Mitosis](https://github.com/BuilderIO/mitosis): Write components once, run everywhere. Compiles to React, Vue, Qwik, Solid, Angular, Svelte, and more.
61
+ - [Pattern Lab](https://patternlab.io/): a frontend workshop environment that helps you build, view, test, and showcase your design system's UI components.
62
+ - [Builder.io](https://www.builder.io/m/developers): the first and only headless CMS with a visual editor that lets you drag and drop with your components, directly within your current site or app. Completely API-driven, for cleaner code and simpler workflows.
63
+ - [Microsoft Power Pages](https://learn.microsoft.com/en-us/power-pages/introduction): a secure, enterprise-grade, low-code software as a service (SaaS) platform for creating, hosting, and administering modern external-facing business websites.
64
+ - [Azure API Management developer portal](https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-developer-portal): an automatically generated, fully customizable website with the documentation of your APIs.
48
65
 
49
- * [@11ty/eleventy](https://www.npmjs.com/package/@11ty/eleventy): A simpler static site generator. An alternative to Jekyll. Written in JavaScript. Transforms a directory of templates (of varying types) into HTML.
50
- * [gulp-liquidjs](https://www.npmjs.com/package/@tuanpham-dev/gulp-liquidjs): A shopify compatible Liquid template engine for Gulp using liquidjs.
51
- * [grunt-liquify](https://www.npmjs.com/package/grunt-liquify): A Grunt task to process Liquid using liquidjs. Use it to add Liquid magic to your scripts and css assets.
52
- * [react-liquid](https://github.com/aquibm/react-liquid#readme): Liquid templating language component for React
66
+ Feel free to create a PR or contact me to add your use case into this list!
53
67
 
54
68
  ## Financial Support
55
69
 
56
- If you love LiquidJS or your company is using LiquidJS? Please consider [support us on Open Collective or Patreon][financial-support].
70
+ If you personally love LiquidJS or it's benefiting your business, please consider financially support us:
57
71
 
58
- ### Backers
59
- If you personally like LiquidJS and find it useful to you, you can buy me a coffee!
72
+ - via [Github Sponsors](https://github.com/sponsors/harttle), or
73
+ - via [LiquidJS on Open Collective][oc]
60
74
 
61
- <img src="https://opencollective.com/liquidjs/backers.svg?avatarHeight=72">
75
+ Special thanks to the following sponsors!
62
76
 
63
- ### Sponsors
64
- If LiquidJS is benefiting your business/company, please sponsor us to contribute to our effort!
77
+ <!-- FINANCIAL-CONTRIBUTORS-BEGIN -->
78
+ <table>
79
+ <tbody>
80
+ <tr>
81
+ <td align="center" valign="top" width="14.28%"><a href="https://www.opensense.com/"><img src="https://images.opencollective.com/opensense-inc/bf840ae/logo/256.png?height=100" width="100px;" alt="Opensense Inc."/><br /><sub><b>Opensense</b></sub></a></td>
82
+ <td align="center" valign="top" width="14.28%"><a href="https://www.11ty.dev/"><img src="https://avatars.githubusercontent.com/u/35147177?v=4?s=100" width="100px;" alt="Eleventy"/><br /><sub><b>Eleventy</b></sub></a></td>
83
+ <td align="center" valign="top" width="14.28%"><a href="http://about.me/peterdehaan"><img src="https://avatars2.githubusercontent.com/u/557895?v=4?s=100" width="100px;" alt="Peter deHaan"/><br /><sub><b>Peter deHaan</b></sub></a></td>
84
+ <td align="center" valign="top" width="14.28%"><a href="https://opencollective.com/touchless"><img src="https://images.opencollective.com/touchless/273bc74/logo/256.png?height=100" width="100px;" alt="Touchless"/><br /><sub><b>Touchless</b></sub></a></td>
85
+ <td align="center" valign="top" width="14.28%"><a href="https://www.dropkiq.com/"><img src="https://images.opencollective.com/1bertlol/43a8ea8/logo/256.png?height=100" width="100px;" alt="Adam Darrah"/><br /><sub><b>Dropkiq</b></sub></a></td>
86
+ <td align="center" valign="top" width="14.28%"><a href="https://dailycontributors.com/"><img src="https://images.opencollective.com/dailycontributors/3c2e057/logo/256.png?height=100&width=100" width="100px;" alt="Dailycontributors"/><br /><sub><b>Dailycontributors</b></sub></a></td>
87
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/coni2k"><img src="https://avatars0.githubusercontent.com/u/1284601?v=4?s=100" width="100px;" alt="coni2k"/><br /><sub><b>Serkan Holat</b></sub></a></td>
88
+ </tr>
89
+ <tr>
90
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/amit777"><img src="https://avatars0.githubusercontent.com/u/2703309?v=4?s=100" width="100px;" alt="amit777"/><br /><sub><b>amit777</b></sub></a></td>
91
+ <td align="center" valign="top" width="14.28%"><a href="https://opencollective.com/khaled-salem"><img src="https://images.opencollective.com/khaled-salem/avatar/256.png?height=256" width="100px;" alt="Khaled Salem"/><br /><sub><b>Khaled Salem</b></sub></a></td>
92
+ <td align="center" valign="top" width="14.28%"><a href="https://sentry.io/"><img src="https://avatars.githubusercontent.com/u/1396951?v=4?s=100" width="100px;" alt="Sentry"/><br /><sub><b>Sentry</b></sub></a></td>
93
+ <td align="center" valign="top" width="14.28%"><a href="https://www.checkoutblocks.com/"><img src="https://avatars.githubusercontent.com/u/114603307?v=4?s=100" width="100px;" alt="Checkout Blocks"/><br /><sub><b>Checkout Blocks</b></sub></a></td>
94
+ <td align="center" valign="top" width="14.28%"><a href="https://customer.io/"><img src="https://avatars.githubusercontent.com/u/1152079?v=4?s=100" width="100px;" alt="Customer IO"/><br /><sub><b>Customer IO</b></sub></a></td>
95
+ </tr>
96
+ </tbody>
97
+ </table>
98
+ <!-- FINANCIAL-CONTRIBUTORS-END -->
65
99
 
66
- <img src="https://opencollective.com/liquidjs/sponsors.svg?avatarHeight=72">
67
100
  ## Contributors ✨
68
101
 
69
102
  Want to contribute? see [Contribution Guidelines][contribution]. Thanks goes to these wonderful people:
@@ -74,75 +107,97 @@ Want to contribute? see [Contribution Guidelines][contribution]. Thanks goes to
74
107
  <table>
75
108
  <tbody>
76
109
  <tr>
77
- <td align="center"><a href="https://harttle.land"><img src="https://avatars3.githubusercontent.com/u/4427974?v=4?s=100" width="100px;" alt="Jun Yang"/><br /><sub><b>Jun Yang</b></sub></a><br /><a href="#maintenance-harttle" title="Maintenance">🚧</a> <a href="https://github.com/harttle/liquidjs/commits?author=harttle" title="Code">💻</a></td>
78
- <td align="center"><a href="https://github.com/chenos"><img src="https://avatars0.githubusercontent.com/u/2993310?v=4?s=100" width="100px;" alt="chenos"/><br /><sub><b>chenos</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=chenos" title="Code">💻</a></td>
79
- <td align="center"><a href="https://zachleat.com/"><img src="https://avatars2.githubusercontent.com/u/39355?v=4?s=100" width="100px;" alt="Zach Leatherman"/><br /><sub><b>Zach Leatherman</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/issues?q=author%3Azachleat" title="Bug reports">🐛</a></td>
80
- <td align="center"><a href="https://github.com/thardy"><img src="https://avatars3.githubusercontent.com/u/120636?v=4?s=100" width="100px;" alt="Tim Hardy"/><br /><sub><b>Tim Hardy</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=thardy" title="Code">💻</a></td>
81
- <td align="center"><a href="https://paulrobertlloyd.com/"><img src="https://avatars3.githubusercontent.com/u/813383?v=4?s=100" width="100px;" alt="Paul Robert Lloyd"/><br /><sub><b>Paul Robert Lloyd</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=paulrobertlloyd" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/issues?q=author%3Apaulrobertlloyd" title="Bug reports">🐛</a></td>
82
- <td align="center"><a href="https://twitter.com/alecdotbiz"><img src="https://avatars2.githubusercontent.com/u/1925840?v=4?s=100" width="100px;" alt="Alec Larson"/><br /><sub><b>Alec Larson</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=aleclarson" title="Code">💻</a></td>
83
- <td align="center"><a href="https://github.com/pmalouin"><img src="https://avatars1.githubusercontent.com/u/1411117?v=4?s=100" width="100px;" alt="Patrick Malouin"/><br /><sub><b>Patrick Malouin</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=pmalouin" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/commits?author=pmalouin" title="Documentation">📖</a></td>
110
+ <td align="center" valign="top" width="14.28%"><a href="https://harttle.land"><img src="https://avatars3.githubusercontent.com/u/4427974?v=4?s=100" width="100px;" alt="Jun Yang"/><br /><sub><b>Jun Yang</b></sub></a><br /><a href="#maintenance-harttle" title="Maintenance">🚧</a> <a href="https://github.com/harttle/liquidjs/commits?author=harttle" title="Code">💻</a></td>
111
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/chenos"><img src="https://avatars0.githubusercontent.com/u/2993310?v=4?s=100" width="100px;" alt="chenos"/><br /><sub><b>chenos</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=chenos" title="Code">💻</a></td>
112
+ <td align="center" valign="top" width="14.28%"><a href="https://zachleat.com/"><img src="https://avatars2.githubusercontent.com/u/39355?v=4?s=100" width="100px;" alt="Zach Leatherman"/><br /><sub><b>Zach Leatherman</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/issues?q=author%3Azachleat" title="Bug reports">🐛</a></td>
113
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/thardy"><img src="https://avatars3.githubusercontent.com/u/120636?v=4?s=100" width="100px;" alt="Tim Hardy"/><br /><sub><b>Tim Hardy</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=thardy" title="Code">💻</a></td>
114
+ <td align="center" valign="top" width="14.28%"><a href="https://paulrobertlloyd.com/"><img src="https://avatars3.githubusercontent.com/u/813383?v=4?s=100" width="100px;" alt="Paul Robert Lloyd"/><br /><sub><b>Paul Robert Lloyd</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=paulrobertlloyd" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/issues?q=author%3Apaulrobertlloyd" title="Bug reports">🐛</a></td>
115
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/alecdotbiz"><img src="https://avatars2.githubusercontent.com/u/1925840?v=4?s=100" width="100px;" alt="Alec Larson"/><br /><sub><b>Alec Larson</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=aleclarson" title="Code">💻</a></td>
116
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pmalouin"><img src="https://avatars1.githubusercontent.com/u/1411117?v=4?s=100" width="100px;" alt="Patrick Malouin"/><br /><sub><b>Patrick Malouin</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=pmalouin" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/commits?author=pmalouin" title="Documentation">📖</a></td>
117
+ </tr>
118
+ <tr>
119
+ <td align="center" valign="top" width="14.28%"><a href="https://jaswrks.com"><img src="https://avatars3.githubusercontent.com/u/1563559?v=4?s=100" width="100px;" alt="jaswrks"/><br /><sub><b>jaswrks</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jaswrks" title="Code">💻</a></td>
120
+ <td align="center" valign="top" width="14.28%"><a href="https://oott123.com"><img src="https://avatars2.githubusercontent.com/u/905663?v=4?s=100" width="100px;" alt="三三"/><br /><sub><b>三三</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=oott123" title="Code">💻</a> <a href="#ideas-oott123" title="Ideas, Planning, & Feedback">🤔</a></td>
121
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ssendev"><img src="https://avatars0.githubusercontent.com/u/450793?v=4?s=100" width="100px;" alt="ssendev"/><br /><sub><b>ssendev</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ssendev" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/commits?author=ssendev" title="Documentation">📖</a></td>
122
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/wojtask9"><img src="https://avatars3.githubusercontent.com/u/6099236?v=4?s=100" width="100px;" alt="wojtask9"/><br /><sub><b>wojtask9</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=wojtask9" title="Code">💻</a></td>
123
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/thelornenelson"><img src="https://avatars3.githubusercontent.com/u/24596583?v=4?s=100" width="100px;" alt="Andrew Barclay"/><br /><sub><b>Andrew Barclay</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=thelornenelson" title="Code">💻</a></td>
124
+ <td align="center" valign="top" width="14.28%"><a href="https://www.stam.pr/"><img src="https://avatars2.githubusercontent.com/u/142338?v=4?s=100" width="100px;" alt="Cory Mawhorter"/><br /><sub><b>Cory Mawhorter</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=cmawhorter" title="Code">💻</a></td>
125
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/thehappybug"><img src="https://avatars0.githubusercontent.com/u/3393530?v=4?s=100" width="100px;" alt="Mehdi Jaffery"/><br /><sub><b>Mehdi Jaffery</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=thehappybug" title="Code">💻</a></td>
126
+ </tr>
127
+ <tr>
128
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/robinbijlani"><img src="https://avatars0.githubusercontent.com/u/2503108?v=4?s=100" width="100px;" alt="Robin Bijlani"/><br /><sub><b>Robin Bijlani</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=robinbijlani" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/issues?q=author%3Arobinbijlani" title="Bug reports">🐛</a></td>
129
+ <td align="center" valign="top" width="14.28%"><a href="https://www.rmkennedy.com"><img src="https://avatars3.githubusercontent.com/u/8356669?v=4?s=100" width="100px;" alt="Ryan Kennedy"/><br /><sub><b>Ryan Kennedy</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ryaninvents" title="Code">💻</a></td>
130
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/strax"><img src="https://avatars2.githubusercontent.com/u/587213?v=4?s=100" width="100px;" alt="Sami Kukkonen"/><br /><sub><b>Sami Kukkonen</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=strax" title="Code">💻</a></td>
131
+ <td align="center" valign="top" width="14.28%"><a href="https://ScottFreeCode.github.io/"><img src="https://avatars3.githubusercontent.com/u/16506071?v=4?s=100" width="100px;" alt="Scott Santucci"/><br /><sub><b>Scott Santucci</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ScottFreeCode" title="Code">💻</a></td>
132
+ <td align="center" valign="top" width="14.28%"><a href="http://stevenrescigno.com"><img src="https://avatars3.githubusercontent.com/u/8505293?v=4?s=100" width="100px;" alt="Steven "/><br /><sub><b>Steven </b></sub></a><br /><a href="#example-stevenanthonyrevo" title="Examples">💡</a> <a href="https://github.com/harttle/liquidjs/commits?author=stevenanthonyrevo" title="Code">💻</a></td>
133
+ <td align="center" valign="top" width="14.28%"><a href="https://efcl.info/"><img src="https://avatars1.githubusercontent.com/u/19714?v=4?s=100" width="100px;" alt="azu"/><br /><sub><b>azu</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=azu" title="Documentation">📖</a></td>
134
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/wyozi"><img src="https://avatars3.githubusercontent.com/u/4894573?v=4?s=100" width="100px;" alt="Joonas"/><br /><sub><b>Joonas</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=wyozi" title="Code">💻</a></td>
135
+ </tr>
136
+ <tr>
137
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jamelait"><img src="https://avatars1.githubusercontent.com/u/14369255?v=4?s=100" width="100px;" alt="Jamel A."/><br /><sub><b>Jamel A.</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jamelait" title="Code">💻</a></td>
138
+ <td align="center" valign="top" width="14.28%"><a href="https://brandonpittman.net"><img src="https://avatars0.githubusercontent.com/u/967145?v=4?s=100" width="100px;" alt="Brandon Pittman"/><br /><sub><b>Brandon Pittman</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=brandonpittman" title="Code">💻</a></td>
139
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tgrandgent"><img src="https://avatars3.githubusercontent.com/u/17069042?v=4?s=100" width="100px;" alt="tgrandgent"/><br /><sub><b>tgrandgent</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=tgrandgent" title="Code">💻</a></td>
140
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mastodon0"><img src="https://avatars1.githubusercontent.com/u/7924332?v=4?s=100" width="100px;" alt="Martin Schuster"/><br /><sub><b>Martin Schuster</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mastodon0" title="Code">💻</a></td>
141
+ <td align="center" valign="top" width="14.28%"><a href="http://js.chenlei.me"><img src="https://avatars0.githubusercontent.com/u/6339390?v=4?s=100" width="100px;" alt="Ray"/><br /><sub><b>Ray</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=richardo2016" title="Tests">⚠️</a> <a href="https://github.com/harttle/liquidjs/commits?author=richardo2016" title="Code">💻</a></td>
142
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/CriGoT"><img src="https://avatars0.githubusercontent.com/u/1936786?v=4?s=100" width="100px;" alt="Cristofer Gonzales"/><br /><sub><b>Cristofer Gonzales</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=CriGoT" title="Code">💻</a></td>
143
+ <td align="center" valign="top" width="14.28%"><a href="https://www.raymondcamden.com"><img src="https://avatars3.githubusercontent.com/u/393660?v=4?s=100" width="100px;" alt="Raymond Camden"/><br /><sub><b>Raymond Camden</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=cfjedimaster" title="Documentation">📖</a></td>
84
144
  </tr>
85
145
  <tr>
86
- <td align="center"><a href="https://jaswrks.com"><img src="https://avatars3.githubusercontent.com/u/1563559?v=4?s=100" width="100px;" alt="jaswrks"/><br /><sub><b>jaswrks</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jaswrks" title="Code">💻</a></td>
87
- <td align="center"><a href="https://oott123.com"><img src="https://avatars2.githubusercontent.com/u/905663?v=4?s=100" width="100px;" alt="三三"/><br /><sub><b>三三</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=oott123" title="Code">💻</a> <a href="#ideas-oott123" title="Ideas, Planning, & Feedback">🤔</a></td>
88
- <td align="center"><a href="https://github.com/ssendev"><img src="https://avatars0.githubusercontent.com/u/450793?v=4?s=100" width="100px;" alt="ssendev"/><br /><sub><b>ssendev</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ssendev" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/commits?author=ssendev" title="Documentation">📖</a></td>
89
- <td align="center"><a href="https://github.com/wojtask9"><img src="https://avatars3.githubusercontent.com/u/6099236?v=4?s=100" width="100px;" alt="wojtask9"/><br /><sub><b>wojtask9</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=wojtask9" title="Code">💻</a></td>
90
- <td align="center"><a href="https://github.com/thelornenelson"><img src="https://avatars3.githubusercontent.com/u/24596583?v=4?s=100" width="100px;" alt="Andrew Barclay"/><br /><sub><b>Andrew Barclay</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=thelornenelson" title="Code">💻</a></td>
91
- <td align="center"><a href="https://www.stam.pr/"><img src="https://avatars2.githubusercontent.com/u/142338?v=4?s=100" width="100px;" alt="Cory Mawhorter"/><br /><sub><b>Cory Mawhorter</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=cmawhorter" title="Code">💻</a></td>
92
- <td align="center"><a href="https://github.com/thehappybug"><img src="https://avatars0.githubusercontent.com/u/3393530?v=4?s=100" width="100px;" alt="Mehdi Jaffery"/><br /><sub><b>Mehdi Jaffery</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=thehappybug" title="Code">💻</a></td>
146
+ <td align="center" valign="top" width="14.28%"><a href="https://stedman.dev"><img src="https://avatars1.githubusercontent.com/u/183122?v=4?s=100" width="100px;" alt="Steve Stedman"/><br /><sub><b>Steve Stedman</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=stedman" title="Documentation">📖</a></td>
147
+ <td align="center" valign="top" width="14.28%"><a href="https://ciccarello.me"><img src="https://avatars0.githubusercontent.com/u/11273838?v=4?s=100" width="100px;" alt="Anthony Ciccarello"/><br /><sub><b>Anthony Ciccarello</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=aciccarello" title="Documentation">📖</a></td>
148
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/IAmTrySound"><img src="https://avatars0.githubusercontent.com/u/5635476?v=4?s=100" width="100px;" alt="Bogdan Chadkin"/><br /><sub><b>Bogdan Chadkin</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=TrySound" title="Code">💻</a></td>
149
+ <td align="center" valign="top" width="14.28%"><a href="https://hightouch.io"><img src="https://avatars0.githubusercontent.com/u/5959235?v=4?s=100" width="100px;" alt="Tejas Manohar"/><br /><sub><b>Tejas Manohar</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=tejasmanohar" title="Code">💻</a></td>
150
+ <td align="center" valign="top" width="14.28%"><a href="http://about.me/peterdehaan"><img src="https://avatars2.githubusercontent.com/u/557895?v=4?s=100" width="100px;" alt="Peter deHaan"/><br /><sub><b>Peter deHaan</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=pdehaan" title="Documentation">📖</a></td>
151
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/amit777"><img src="https://avatars0.githubusercontent.com/u/2703309?v=4?s=100" width="100px;" alt="amit777"/><br /><sub><b>amit777</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=amit777" title="Code">💻</a></td>
152
+ <td align="center" valign="top" width="14.28%"><a href="http://www.ifi.uzh.ch/en/ce/people/schuldenzucker.html"><img src="https://avatars3.githubusercontent.com/u/1100776?v=4?s=100" width="100px;" alt="Steffen Schuldenzucker"/><br /><sub><b>Steffen Schuldenzucker</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=sschuldenzucker" title="Code">💻</a></td>
93
153
  </tr>
94
154
  <tr>
95
- <td align="center"><a href="https://github.com/robinbijlani"><img src="https://avatars0.githubusercontent.com/u/2503108?v=4?s=100" width="100px;" alt="Robin Bijlani"/><br /><sub><b>Robin Bijlani</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=robinbijlani" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/issues?q=author%3Arobinbijlani" title="Bug reports">🐛</a></td>
96
- <td align="center"><a href="https://www.rmkennedy.com"><img src="https://avatars3.githubusercontent.com/u/8356669?v=4?s=100" width="100px;" alt="Ryan Kennedy"/><br /><sub><b>Ryan Kennedy</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ryaninvents" title="Code">💻</a></td>
97
- <td align="center"><a href="https://github.com/strax"><img src="https://avatars2.githubusercontent.com/u/587213?v=4?s=100" width="100px;" alt="Sami Kukkonen"/><br /><sub><b>Sami Kukkonen</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=strax" title="Code">💻</a></td>
98
- <td align="center"><a href="https://ScottFreeCode.github.io/"><img src="https://avatars3.githubusercontent.com/u/16506071?v=4?s=100" width="100px;" alt="Scott Santucci"/><br /><sub><b>Scott Santucci</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ScottFreeCode" title="Code">💻</a></td>
99
- <td align="center"><a href="http://stevenrescigno.com"><img src="https://avatars3.githubusercontent.com/u/8505293?v=4?s=100" width="100px;" alt="Steven "/><br /><sub><b>Steven </b></sub></a><br /><a href="#example-stevenanthonyrevo" title="Examples">💡</a> <a href="https://github.com/harttle/liquidjs/commits?author=stevenanthonyrevo" title="Code">💻</a></td>
100
- <td align="center"><a href="https://efcl.info/"><img src="https://avatars1.githubusercontent.com/u/19714?v=4?s=100" width="100px;" alt="azu"/><br /><sub><b>azu</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=azu" title="Documentation">📖</a></td>
101
- <td align="center"><a href="https://github.com/wyozi"><img src="https://avatars3.githubusercontent.com/u/4894573?v=4?s=100" width="100px;" alt="Joonas"/><br /><sub><b>Joonas</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=wyozi" title="Code">💻</a></td>
155
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Pixcell"><img src="https://avatars0.githubusercontent.com/u/4005291?v=4?s=100" width="100px;" alt="Pixcell"/><br /><sub><b>Pixcell</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=Pixcell" title="Code">💻</a></td>
156
+ <td align="center" valign="top" width="14.28%"><a href="https://jasonet.co"><img src="https://avatars.githubusercontent.com/u/10660468?v=4?s=100" width="100px;" alt="Jason Etcovitch"/><br /><sub><b>Jason Etcovitch</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=JasonEtco" title="Code">💻</a></td>
157
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kayuapi"><img src="https://avatars.githubusercontent.com/u/10304328?v=4?s=100" width="100px;" alt="ZC"/><br /><sub><b>ZC</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=kayuapi" title="Documentation">📖</a></td>
158
+ <td align="center" valign="top" width="14.28%"><a href="https://memmie.lenglet.name"><img src="https://avatars.githubusercontent.com/u/729275?v=4?s=100" width="100px;" alt="Memmie Lenglet"/><br /><sub><b>Memmie Lenglet</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mems" title="Code">💻</a></td>
159
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ilhamdev0"><img src="https://avatars.githubusercontent.com/u/57636145?v=4?s=100" width="100px;" alt="ilhamdev0"/><br /><sub><b>ilhamdev0</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ilhamdev0" title="Documentation">📖</a></td>
160
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/c412216887"><img src="https://avatars.githubusercontent.com/u/29691650?v=4?s=100" width="100px;" alt="一饮一啄皆是人生"/><br /><sub><b>一饮一啄皆是人生</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=c412216887" title="Documentation">📖</a></td>
161
+ <td align="center" valign="top" width="14.28%"><a href="https://digitalinspiration.com/"><img src="https://avatars.githubusercontent.com/u/1344071?v=4?s=100" width="100px;" alt="Amit Agarwal"/><br /><sub><b>Amit Agarwal</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=labnol" title="Documentation">📖</a></td>
102
162
  </tr>
103
163
  <tr>
104
- <td align="center"><a href="https://github.com/jamelait"><img src="https://avatars1.githubusercontent.com/u/14369255?v=4?s=100" width="100px;" alt="Jamel A."/><br /><sub><b>Jamel A.</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jamelait" title="Code">💻</a></td>
105
- <td align="center"><a href="https://brandonpittman.net"><img src="https://avatars0.githubusercontent.com/u/967145?v=4?s=100" width="100px;" alt="Brandon Pittman"/><br /><sub><b>Brandon Pittman</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=brandonpittman" title="Code">💻</a></td>
106
- <td align="center"><a href="https://github.com/tgrandgent"><img src="https://avatars3.githubusercontent.com/u/17069042?v=4?s=100" width="100px;" alt="tgrandgent"/><br /><sub><b>tgrandgent</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=tgrandgent" title="Code">💻</a></td>
107
- <td align="center"><a href="https://github.com/mastodon0"><img src="https://avatars1.githubusercontent.com/u/7924332?v=4?s=100" width="100px;" alt="Martin Schuster"/><br /><sub><b>Martin Schuster</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mastodon0" title="Code">💻</a></td>
108
- <td align="center"><a href="http://js.chenlei.me"><img src="https://avatars0.githubusercontent.com/u/6339390?v=4?s=100" width="100px;" alt="Ray"/><br /><sub><b>Ray</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=richardo2016" title="Tests">⚠️</a> <a href="https://github.com/harttle/liquidjs/commits?author=richardo2016" title="Code">💻</a></td>
109
- <td align="center"><a href="https://github.com/CriGoT"><img src="https://avatars0.githubusercontent.com/u/1936786?v=4?s=100" width="100px;" alt="Cristofer Gonzales"/><br /><sub><b>Cristofer Gonzales</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=CriGoT" title="Code">💻</a></td>
110
- <td align="center"><a href="https://www.raymondcamden.com"><img src="https://avatars3.githubusercontent.com/u/393660?v=4?s=100" width="100px;" alt="Raymond Camden"/><br /><sub><b>Raymond Camden</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=cfjedimaster" title="Documentation">📖</a></td>
164
+ <td align="center" valign="top" width="14.28%"><a href="https://n1ru4l.cloud/"><img src="https://avatars.githubusercontent.com/u/14338007?v=4?s=100" width="100px;" alt="Laurin Quast"/><br /><sub><b>Laurin Quast</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=n1ru4l" title="Code">💻</a></td>
165
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mattvague"><img src="https://avatars.githubusercontent.com/u/64985?v=4?s=100" width="100px;" alt="Matt Vague"/><br /><sub><b>Matt Vague</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mattvague" title="Code">💻</a></td>
166
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bglw"><img src="https://avatars.githubusercontent.com/u/40188355?v=4?s=100" width="100px;" alt="Liam Bigelow"/><br /><sub><b>Liam Bigelow</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=bglw" title="Code">💻</a></td>
167
+ <td align="center" valign="top" width="14.28%"><a href="https://about.me/jasonkurian"><img src="https://avatars.githubusercontent.com/u/2642545?v=4?s=100" width="100px;" alt="Jason Kurian"/><br /><sub><b>Jason Kurian</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=JaKXz" title="Documentation">📖</a></td>
168
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/dphm"><img src="https://avatars.githubusercontent.com/u/1707217?v=4?s=100" width="100px;" alt="d pham (they/them)"/><br /><sub><b>d pham (they/them)</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=dphm" title="Documentation">📖</a></td>
169
+ <td align="center" valign="top" width="14.28%"><a href="https://www.aleksandrhovhannisyan.com/"><img src="https://avatars.githubusercontent.com/u/19352442?v=4?s=100" width="100px;" alt="Aleksandr Hovhannisyan"/><br /><sub><b>Aleksandr Hovhannisyan</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=AleksandrHovhannisyan" title="Code">💻</a></td>
170
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jg-rp"><img src="https://avatars.githubusercontent.com/u/72664870?v=4?s=100" width="100px;" alt="jg-rp"/><br /><sub><b>jg-rp</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jg-rp" title="Code">💻</a></td>
111
171
  </tr>
112
172
  <tr>
113
- <td align="center"><a href="https://stedman.dev"><img src="https://avatars1.githubusercontent.com/u/183122?v=4?s=100" width="100px;" alt="Steve Stedman"/><br /><sub><b>Steve Stedman</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=stedman" title="Documentation">📖</a></td>
114
- <td align="center"><a href="https://ciccarello.me"><img src="https://avatars0.githubusercontent.com/u/11273838?v=4?s=100" width="100px;" alt="Anthony Ciccarello"/><br /><sub><b>Anthony Ciccarello</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=aciccarello" title="Documentation">📖</a></td>
115
- <td align="center"><a href="https://twitter.com/IAmTrySound"><img src="https://avatars0.githubusercontent.com/u/5635476?v=4?s=100" width="100px;" alt="Bogdan Chadkin"/><br /><sub><b>Bogdan Chadkin</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=TrySound" title="Code">💻</a></td>
116
- <td align="center"><a href="https://hightouch.io"><img src="https://avatars0.githubusercontent.com/u/5959235?v=4?s=100" width="100px;" alt="Tejas Manohar"/><br /><sub><b>Tejas Manohar</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=tejasmanohar" title="Code">💻</a></td>
117
- <td align="center"><a href="http://about.me/peterdehaan"><img src="https://avatars2.githubusercontent.com/u/557895?v=4?s=100" width="100px;" alt="Peter deHaan"/><br /><sub><b>Peter deHaan</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=pdehaan" title="Documentation">📖</a></td>
118
- <td align="center"><a href="https://github.com/amit777"><img src="https://avatars0.githubusercontent.com/u/2703309?v=4?s=100" width="100px;" alt="amit777"/><br /><sub><b>amit777</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=amit777" title="Code">💻</a> <a href="#financial-amit777" title="Financial">💵</a></td>
119
- <td align="center"><a href="http://www.ifi.uzh.ch/en/ce/people/schuldenzucker.html"><img src="https://avatars3.githubusercontent.com/u/1100776?v=4?s=100" width="100px;" alt="Steffen Schuldenzucker"/><br /><sub><b>Steffen Schuldenzucker</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=sschuldenzucker" title="Code">💻</a></td>
173
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ameyaapte1"><img src="https://avatars.githubusercontent.com/u/16054747?v=4?s=100" width="100px;" alt="Ameya Apte"/><br /><sub><b>Ameya Apte</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ameyaapte1" title="Code">💻</a></td>
174
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tbdrz"><img src="https://avatars.githubusercontent.com/u/50599116?v=4?s=100" width="100px;" alt="tbdrz"/><br /><sub><b>tbdrz</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=tbdrz" title="Documentation">📖</a></td>
175
+ <td align="center" valign="top" width="14.28%"><a href="http://santialbo.com"><img src="https://avatars.githubusercontent.com/u/1557563?v=4?s=100" width="100px;" alt="Santi Albo"/><br /><sub><b>Santi Albo</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=santialbo" title="Documentation">📖</a></td>
176
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/YahangWu"><img src="https://avatars.githubusercontent.com/u/12295975?v=4?s=100" width="100px;" alt="Yahang Wu"/><br /><sub><b>Yahang Wu</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=YahangWu" title="Documentation">📖</a></td>
177
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/hongl-1"><img src="https://avatars.githubusercontent.com/u/101576612?v=4?s=100" width="100px;" alt="hongl"/><br /><sub><b>hongl</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=hongl-1" title="Documentation">📖</a></td>
178
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/zxx-457"><img src="https://avatars.githubusercontent.com/u/114141362?v=4?s=100" width="100px;" alt="zxx-457"/><br /><sub><b>zxx-457</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=zxx-457" title="Documentation">📖</a></td>
179
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/prassie"><img src="https://avatars.githubusercontent.com/u/1357831?v=4?s=100" width="100px;" alt="prassie"/><br /><sub><b>prassie</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=prassie" title="Documentation">📖</a></td>
120
180
  </tr>
121
181
  <tr>
122
- <td align="center"><a href="https://github.com/Pixcell"><img src="https://avatars0.githubusercontent.com/u/4005291?v=4?s=100" width="100px;" alt="Pixcell"/><br /><sub><b>Pixcell</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=Pixcell" title="Code">💻</a></td>
123
- <td align="center"><a href="https://jasonet.co"><img src="https://avatars.githubusercontent.com/u/10660468?v=4?s=100" width="100px;" alt="Jason Etcovitch"/><br /><sub><b>Jason Etcovitch</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=JasonEtco" title="Code">💻</a></td>
124
- <td align="center"><a href="https://github.com/kayuapi"><img src="https://avatars.githubusercontent.com/u/10304328?v=4?s=100" width="100px;" alt="ZC"/><br /><sub><b>ZC</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=kayuapi" title="Documentation">📖</a></td>
125
- <td align="center"><a href="https://memmie.lenglet.name"><img src="https://avatars.githubusercontent.com/u/729275?v=4?s=100" width="100px;" alt="Memmie Lenglet"/><br /><sub><b>Memmie Lenglet</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mems" title="Code">💻</a></td>
126
- <td align="center"><a href="https://github.com/ilhamdev0"><img src="https://avatars.githubusercontent.com/u/57636145?v=4?s=100" width="100px;" alt="ilhamdev0"/><br /><sub><b>ilhamdev0</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ilhamdev0" title="Documentation">📖</a></td>
127
- <td align="center"><a href="https://github.com/c412216887"><img src="https://avatars.githubusercontent.com/u/29691650?v=4?s=100" width="100px;" alt="一饮一啄皆是人生"/><br /><sub><b>一饮一啄皆是人生</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=c412216887" title="Documentation">📖</a></td>
128
- <td align="center"><a href="https://digitalinspiration.com/"><img src="https://avatars.githubusercontent.com/u/1344071?v=4?s=100" width="100px;" alt="Amit Agarwal"/><br /><sub><b>Amit Agarwal</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=labnol" title="Documentation">📖</a></td>
182
+ <td align="center" valign="top" width="14.28%"><a href="http://slavv.com/"><img src="https://avatars.githubusercontent.com/u/713329?v=4?s=100" width="100px;" alt="Slav Ivanov"/><br /><sub><b>Slav Ivanov</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=slavivanov" title="Code">💻</a></td>
183
+ <td align="center" valign="top" width="14.28%"><a href="http://www.orgflow.io/"><img src="https://avatars.githubusercontent.com/u/3889090?v=4?s=100" width="100px;" alt="Daniel Rosenberg"/><br /><sub><b>Daniel Rosenberg</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=DaRosenberg" title="Code">💻</a></td>
184
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bobgubko"><img src="https://avatars.githubusercontent.com/u/733312?v=4?s=100" width="100px;" alt="bobgubko"/><br /><sub><b>bobgubko</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=bobgubko" title="Code">💻</a></td>
185
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bangank36"><img src="https://avatars.githubusercontent.com/u/10071857?v=4?s=100" width="100px;" alt="BaNgan"/><br /><sub><b>BaNgan</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=bangank36" title="Documentation">📖</a></td>
186
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mahyar-pasarzangene"><img src="https://avatars.githubusercontent.com/u/16485039?v=4?s=100" width="100px;" alt="Mahyar Pasarzangene"/><br /><sub><b>Mahyar Pasarzangene</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mahyar-pasarzangene" title="Documentation">📖</a></td>
187
+ <td align="center" valign="top" width="14.28%"><a href="https://hubelbauer.net/"><img src="https://avatars.githubusercontent.com/u/6831144?v=4?s=100" width="100px;" alt="Tomáš Hübelbauer"/><br /><sub><b>Tomáš Hübelbauer</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=TomasHubelbauer" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/commits?author=TomasHubelbauer" title="Documentation">📖</a></td>
188
+ <td align="center" valign="top" width="14.28%"><a href="https://sixtwothree.org"><img src="https://avatars.githubusercontent.com/u/73866?v=4?s=100" width="100px;" alt="Jason Garber"/><br /><sub><b>Jason Garber</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jgarber623" title="Code">💻</a></td>
129
189
  </tr>
130
190
  <tr>
131
- <td align="center"><a href="https://n1ru4l.cloud/"><img src="https://avatars.githubusercontent.com/u/14338007?v=4?s=100" width="100px;" alt="Laurin Quast"/><br /><sub><b>Laurin Quast</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=n1ru4l" title="Code">💻</a></td>
132
- <td align="center"><a href="https://github.com/mattvague"><img src="https://avatars.githubusercontent.com/u/64985?v=4?s=100" width="100px;" alt="Matt Vague"/><br /><sub><b>Matt Vague</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mattvague" title="Code">💻</a></td>
133
- <td align="center"><a href="https://github.com/bglw"><img src="https://avatars.githubusercontent.com/u/40188355?v=4?s=100" width="100px;" alt="Liam Bigelow"/><br /><sub><b>Liam Bigelow</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=bglw" title="Code">💻</a></td>
134
- <td align="center"><a href="https://about.me/jasonkurian"><img src="https://avatars.githubusercontent.com/u/2642545?v=4?s=100" width="100px;" alt="Jason Kurian"/><br /><sub><b>Jason Kurian</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=JaKXz" title="Documentation">📖</a></td>
135
- <td align="center"><a href="https://github.com/dphm"><img src="https://avatars.githubusercontent.com/u/1707217?v=4?s=100" width="100px;" alt="d pham (they/them)"/><br /><sub><b>d pham (they/them)</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=dphm" title="Documentation">📖</a></td>
136
- <td align="center"><a href="https://www.aleksandrhovhannisyan.com/"><img src="https://avatars.githubusercontent.com/u/19352442?v=4?s=100" width="100px;" alt="Aleksandr Hovhannisyan"/><br /><sub><b>Aleksandr Hovhannisyan</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=AleksandrHovhannisyan" title="Code">💻</a></td>
137
- <td align="center"><a href="https://github.com/jg-rp"><img src="https://avatars.githubusercontent.com/u/72664870?v=4?s=100" width="100px;" alt="jg-rp"/><br /><sub><b>jg-rp</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jg-rp" title="Code">💻</a></td>
191
+ <td align="center" valign="top" width="14.28%"><a href="http://nickreilingh.com/"><img src="https://avatars.githubusercontent.com/u/2458645?v=4?s=100" width="100px;" alt="Nick Reilingh"/><br /><sub><b>Nick Reilingh</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=NReilingh" title="Documentation">📖</a></td>
192
+ <td align="center" valign="top" width="14.28%"><a href="http://ebobby.org"><img src="https://avatars.githubusercontent.com/u/170356?v=4?s=100" width="100px;" alt="Francisco Soto"/><br /><sub><b>Francisco Soto</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ebobby" title="Code">💻</a></td>
193
+ <td align="center" valign="top" width="14.28%"><a href="https://www.davidlj95.com"><img src="https://avatars.githubusercontent.com/u/8050648?v=4?s=100" width="100px;" alt="David LJ"/><br /><sub><b>David LJ</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=davidlj95" title="Documentation">📖</a></td>
194
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/RasmusWL"><img src="https://avatars.githubusercontent.com/u/1054041?v=4?s=100" width="100px;" alt="Rasmus Wriedt Larsen"/><br /><sub><b>Rasmus Wriedt Larsen</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=RasmusWL" title="Documentation">📖</a></td>
195
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/brunodccarvalho"><img src="https://avatars.githubusercontent.com/u/24962950?v=4?s=100" width="100px;" alt="Bruno Carvalho"/><br /><sub><b>Bruno Carvalho</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=brunodccarvalho" title="Code">💻</a></td>
196
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/fupengl"><img src="https://avatars.githubusercontent.com/u/20211964?v=4?s=100" width="100px;" alt="傅鹏"/><br /><sub><b>傅鹏</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=fupengl" title="Code">💻</a></td>
197
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/joel-hamilton"><img src="https://avatars.githubusercontent.com/u/12899024?v=4?s=100" width="100px;" alt="Joel Hamilton"/><br /><sub><b>Joel Hamilton</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=joel-hamilton" title="Code">💻</a></td>
138
198
  </tr>
139
199
  <tr>
140
- <td align="center"><a href="https://github.com/ameyaapte1"><img src="https://avatars.githubusercontent.com/u/16054747?v=4?s=100" width="100px;" alt="Ameya Apte"/><br /><sub><b>Ameya Apte</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ameyaapte1" title="Code">💻</a></td>
141
- <td align="center"><a href="https://github.com/tbdrz"><img src="https://avatars.githubusercontent.com/u/50599116?v=4?s=100" width="100px;" alt="tbdrz"/><br /><sub><b>tbdrz</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=tbdrz" title="Documentation">📖</a></td>
142
- <td align="center"><a href="http://santialbo.com"><img src="https://avatars.githubusercontent.com/u/1557563?v=4?s=100" width="100px;" alt="Santi Albo"/><br /><sub><b>Santi Albo</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=santialbo" title="Documentation">📖</a></td>
143
- <td align="center"><a href="https://github.com/YahangWu"><img src="https://avatars.githubusercontent.com/u/12295975?v=4?s=100" width="100px;" alt="Yahang Wu"/><br /><sub><b>Yahang Wu</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=YahangWu" title="Documentation">📖</a></td>
144
- <td align="center"><a href="https://github.com/hongl-1"><img src="https://avatars.githubusercontent.com/u/101576612?v=4?s=100" width="100px;" alt="hongl"/><br /><sub><b>hongl</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=hongl-1" title="Documentation">📖</a></td>
145
- <td align="center"><a href="https://github.com/zxx-457"><img src="https://avatars.githubusercontent.com/u/114141362?v=4?s=100" width="100px;" alt="zxx-457"/><br /><sub><b>zxx-457</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=zxx-457" title="Documentation">📖</a></td>
200
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/amedve"><img src="https://avatars.githubusercontent.com/u/23156422?v=4?s=100" width="100px;" alt="Max Medve"/><br /><sub><b>Max Medve</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=amedve" title="Code">💻</a></td>
146
201
  </tr>
147
202
  </tbody>
148
203
  </table>
@@ -157,7 +212,5 @@ Want to contribute? see [Contribution Guidelines][contribution]. Thanks goes to
157
212
  [setup]: https://liquidjs.com/tutorials/setup.html
158
213
  [doc]: https://liquidjs.com
159
214
  [github]: https://github.com/harttle/liquidjs
160
- [patreon]: https://www.patreon.com/harttle
161
215
  [oc]: https://opencollective.com/liquidjs/
162
216
  [contribution]: https://liquidjs.com/tutorials/contribution-guidelines.html
163
- [financial-support]: https://liquidjs.com/tutorials/contribution-guidelines.html#Financial-Support
@@ -1,24 +1,139 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ const fs = require('fs/promises')
3
4
  const Liquid = require('..').Liquid
4
- const contextArg = process.argv.slice(2)[0]
5
- let context = {}
6
5
 
7
- if (contextArg) {
8
- if (contextArg.endsWith('.json')) {
9
- const fs = require('fs')
10
- context = JSON.parse(fs.readFileSync(contextArg, 'utf8'))
6
+ // Preserve compatibility by falling back to legacy CLI behavior if:
7
+ // - stdin is redirected (i.e. not connected to a terminal) AND
8
+ // - there are either no arguments, or only a single argument which does not start with a dash
9
+ // TODO: Remove this fallback for 11.0
10
+
11
+ let renderPromise = null
12
+ if (!process.stdin.isTTY && (process.argv.length === 2 || (process.argv.length === 3 && !process.argv[2].startsWith('-')))) {
13
+ renderPromise = renderLegacy()
14
+ } else {
15
+ renderPromise = render()
16
+ }
17
+
18
+ renderPromise.catch(err => {
19
+ process.stderr.write(`${err.message}\n`)
20
+ process.exitCode = 1
21
+ })
22
+
23
+ async function render () {
24
+ const { program } = require('commander')
25
+
26
+ program
27
+ .name('liquidjs')
28
+ .description('Render a Liquid template')
29
+ .requiredOption('-t, --template <liquid | @path>', 'liquid template to render (@- to read from stdin)') // TODO: Change to argument in 11.0
30
+ .option('-c, --context <json | @path>', 'input context in JSON format (@- to read from stdin)')
31
+ .option('-o, --output <path>', 'write rendered output to file (omit to write to stdout)')
32
+ .option('--cache [size]', 'cache previously parsed template structures (default cache size: 1024)')
33
+ .option('--extname <string>', 'use a default filename extension when resolving partials and layouts')
34
+ .option('--jekyll-include', 'use jekyll-style include (pass parameters to include variable of current scope)')
35
+ .option('--js-truthy', 'use JavaScript-style truthiness')
36
+ .option('--layouts <path...>', 'directories from where to resolve layouts (defaults to --root)')
37
+ .option('--lenient-if', 'do not throw on undefined variables in conditional expressions (when using --strict-variables)')
38
+ .option('--no-dynamic-partials', 'always treat file paths for partials and layouts as a literal value')
39
+ .option('--no-greedy', 'disable greedy matching for --trim* options')
40
+ .option('--no-relative-reference', 'require absolute file paths for partials and layouts')
41
+ .option('--ordered-filter-parameters', 'respect parameter order when using filters')
42
+ .option('--output-delimiter-left <string>', 'left delimiter to use for liquid outputs')
43
+ .option('--output-delimiter-right <string>', 'right delimiter to use for liquid outputs')
44
+ .option('--partials <path...>', 'directories from where to resolve partials (defaults to --root)')
45
+ .option('--preserve-timezones', 'preserve input timezone in date filter')
46
+ .option('--root <path...>', 'directories from where to resolve partials and layouts (defaults to ".")')
47
+ .option('--strict-filters', 'throw on undefined filters instead of skipping them')
48
+ .option('--strict-variables', 'throw on undefined variables instead of rendering them as empty string')
49
+ .option('--tag-delimiter-left', 'left delimiter to use for liquid tags')
50
+ .option('--tag-delimiter-right', 'right delimiter to use for liquid tags')
51
+ .option('--timezone-offset <value>', 'JavaScript timezone name or timezoneOffset value to use in date filter (defaults to local timezone)')
52
+ .option('--trim-output-left', 'trim whitespace from left of liquid outputs')
53
+ .option('--trim-output-right', 'trim whitespace from right of liquid outputs')
54
+ .option('--trim-tag-left', 'trim whitespace from left of liquid tags')
55
+ .option('--trim-tag-right', 'trim whitespace from right of liquid tags')
56
+ .showHelpAfterError('Use -h or --help for additional information.')
57
+ .parse()
58
+
59
+ const options = program.opts()
60
+
61
+ if (Object.values(options).filter((value) => value === '@-').length > 1) {
62
+ throw new Error(`The stdin input specifier '@-' must only be used once.`)
63
+ }
64
+
65
+ const template = await resolveInputOption(options.template)
66
+ const context = await resolveContext(options.context)
67
+ const liquid = new Liquid(options)
68
+ const output = liquid.parseAndRenderSync(template, context)
69
+ if (options.output) {
70
+ await fs.writeFile(options.output, output)
11
71
  } else {
12
- context = JSON.parse(contextArg)
72
+ process.stdout.write(output)
13
73
  }
14
74
  }
15
75
 
16
- let tpl = ''
17
- process.stdin.on('data', chunk => (tpl += chunk))
18
- process.stdin.on('end', () => render(tpl))
76
+ async function resolveContext (contextOption) {
77
+ let contextJson = '{}'
78
+ if (contextOption) {
79
+ contextJson = await resolveInputOption(contextOption)
80
+ }
81
+ const context = JSON.parse(contextJson)
82
+ return context
83
+ }
19
84
 
20
- async function render (tpl) {
85
+ async function resolveInputOption (option) {
86
+ let content = null
87
+ if (option) {
88
+ if (option === '@-') {
89
+ content = await readStream(process.stdin)
90
+ } else if (option.startsWith('@')) {
91
+ const filePath = option.slice(1)
92
+ const stat = await fs.stat(filePath, { throwIfNoEntry: false })
93
+ if (!stat || !stat.isFile) {
94
+ throw new Error(`'${filePath}' does not exist or is not a file`)
95
+ }
96
+ content = await fs.readFile(filePath, 'utf8')
97
+ } else {
98
+ content = option
99
+ }
100
+ }
101
+ return content
102
+ }
103
+
104
+ async function readStream (stream) {
105
+ const chunks = []
106
+ for await (const chunk of stream) {
107
+ chunks.push(chunk)
108
+ }
109
+ return Buffer.concat(chunks).toString('utf8')
110
+ }
111
+
112
+ // TODO: Remove for 11.0
113
+ async function renderLegacy () {
114
+ process.stderr.write('Reading template from stdin. This mode will be removed in next major version, use --template option instead.\n')
115
+ const contextArg = process.argv.slice(2)[0]
116
+ let context = {}
117
+ if (contextArg) {
118
+ const contextJson = await resolveInputOptionLegacy(contextArg)
119
+ context = JSON.parse(contextJson)
120
+ }
121
+ const template = await readStream(process.stdin)
21
122
  const liquid = new Liquid()
22
- const html = await liquid.parseAndRender(tpl, context)
23
- process.stdout.write(html)
123
+ const output = liquid.parseAndRenderSync(template, context)
124
+ process.stdout.write(output)
125
+ }
126
+
127
+ // TODO: Remove for 11.0
128
+ async function resolveInputOptionLegacy (option) {
129
+ let content = null
130
+ if (option) {
131
+ const stat = await fs.stat(option).catch(e => null)
132
+ if (stat && stat.isFile) {
133
+ content = await fs.readFile(option, 'utf8')
134
+ } else {
135
+ content = option
136
+ }
137
+ }
138
+ return content
24
139
  }
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { Emitter } from './emitter';
2
+ import { Emitter } from '../emitters';
3
3
  export declare class StreamedEmitter implements Emitter {
4
4
  buffer: string;
5
5
  stream: NodeJS.ReadableStream;
@@ -4,4 +4,4 @@ export interface Cache<T> {
4
4
  read(key: string): T | undefined | Promise<T | undefined>;
5
5
  remove(key: string): void | Promise<void>;
6
6
  }
7
- export declare type LiquidCache = Cache<Template[] | Promise<Template[]>>;
7
+ export type LiquidCache = Cache<Template[] | Promise<Template[]>>;
@@ -0,0 +1,2 @@
1
+ export * from './cache';
2
+ export * from './lru';
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,4 @@
1
- declare enum BlockMode {
1
+ export declare enum BlockMode {
2
2
  OUTPUT = 0,
3
3
  STORE = 1
4
4
  }
5
- export default BlockMode;