Harttle and Harttle
e2ef236f68
fix: throws when using preserveTimezones on Node.js, fixes #431
2021-12-07 22:43:47 +08:00
AleksandrHovhannisyan and Harttle
124f4c4485
fix: allow {%render%} to reassign argument, #404
2021-10-31 16:28:33 +08:00
Harttle and Harttle
aebeae9e1b
fix: relative root (by default) yields LookupError, fixes #419 , #424 , also related to #395
2021-10-27 23:55:39 +08:00
Harttle and harttle
8894cbfe6e
fix: cache ongoing parseFile() calls, fixes #416
2021-10-16 21:07:48 +08:00
Harttle and harttle
9cfa43b8ae
fix: hardcoded '/' in normalized options.fs, fixes #412 , #408
...
Changes including:
- will not call fs.resolve when normalizing `fs`
- removed hardcoded `/`
- mandatory `fs.dirname` for relative reference
- mandatory `fs.sep`, defaults to '/'
2021-10-16 12:10:55 +08:00
Harttle
1de6adf308
test: cases for parse(<tpl>, <relative filepath>), #395
2021-10-10 20:37:26 +08:00
Harttle
822ba0be0f
fix: skip root check for renderFile()
2021-10-06 18:38:58 +08:00
Harttle
a3455ebd0b
feat: relativeReference for render/include/layout, #395
...
- `relativeReference` is enabled by default, set to `false` to disable
- Referenced files are still constrained within root/partias/layouts
- fix: relative filenames are not constrained (which allows arbitrary filesystem read)
Example Usage:
{% render "../foo/bar.html" %}
Note:
../foo/bar.html' should also be within `partials` (or `root` if `partials` not set)
2021-10-06 17:36:37 +08:00
Harttle
fd5ef474c3
fix: support timezoneOffset for date from scope, #401
2021-10-06 15:45:41 +08:00
Liam Bigelow and Jun Yang
6dc7fada72
feat: implement forloop.name as found in ruby shopify/liquid
2021-10-04 21:33:46 +08:00
harttle
afeef1d745
fix: renderToNodeStream() now emit 'error' event instead of throw
2021-10-03 22:32:00 +08:00
harttle
68c4cfcfb6
feat: renderFileToNodeStream(filepath, scope)
2021-10-03 21:21:25 +08:00
harttle
b9ae479b65
feat: add layouts, partials apart from root, #395
2021-10-03 18:51:14 +08:00
Harttle and harttle
4358c9630f
test: coverage to 100%
2021-10-01 15:55:31 +08:00
Harttle and Jun Yang
10e8c8ff7e
feat: orderedFilterParameters, closes #312
2021-09-30 22:15:09 +08:00
Steve Stedman and Jun Yang
fb787e8847
Fix: respect parameter order when using "for ... reversed" ( #231 )
...
* fix: spelling
* fix: respect param order for reversed
* docs: add for-reversed order details
* perf: improve performance by 4x by simplified parseFile
BREAKING CHANGES:
- previously deprecated `getTemplate()` and `getTemplateSync()` not no longer supported
- `opts` no longer support dynamic set in `parseFile()`, `renderFile()` arguments
* perf: parse filenames in parse() insteadof render()
* docs: update description of LiquidJS
Co-authored-by: harttle <[email protected] >
2021-09-30 22:15:09 +08:00
harttle
8273c17dab
perf: parse filenames in parse() insteadof render()
2021-09-30 22:15:09 +08:00
harttle
24f5346084
perf: improve performance by 4x by simplified parseFile
...
- previously deprecated `getTemplate()` and `getTemplateSync()` not no longer supported
- `opts` no longer support dynamic set in `parseFile()`, `renderFile()` arguments
2021-09-27 23:04:41 +08:00
harttle
cdceb25d00
perf: add cross-engines benchmark
2021-06-20 13:25:08 +08:00
Memmie Lenglet and Jun Yang
8f9639f1d6
feat: when tag with multiple values
2021-05-06 22:52:22 +08:00
Jun Yang
65487654c4
fix: capitalize filter not lower case trailing string, fixes #326
2021-04-17 10:30:57 +08:00
Jun Yang
9a9b792c63
fix: newline_to_br filter should output <br /> instead of <br/>, fixes #320
2021-03-13 17:14:10 +08:00
Jun Yang
99d14e76d7
fix: comparison for empty/nil, fixes #321
2021-03-13 17:14:08 +08:00
harttle
2f059f6a25
feat: support filters in if/unless/case, see #287
2021-02-12 22:22:41 +08:00
harttle
e37824fd8a
feat: support function calls, closes #222
2021-02-12 13:47:30 +08:00
harttle
81e11bb9c4
feat: support layout none, closes #299
2021-02-12 01:57:30 +08:00
Jason Etcovitch and Jun Yang
20f559e545
fix: default to precedence 1 for custom operators
2021-02-05 23:57:36 +08:00
harttle
f42c217fc0
feat: compact filter
2021-02-04 22:47:34 +08:00
Jason Etcovitch and Jun Yang
befc33c4eb
feat: create trie programmatically in options
2021-02-04 09:11:28 +08:00
Jason Etcovitch and Jun Yang
8734e2e6ce
feat: rename to defaultOperators and Operators
2021-02-04 09:11:28 +08:00
Jason Etcovitch and Jun Yang
18055c8855
test: add LiquidOptions#operators test
2021-02-04 09:11:28 +08:00
harttle
a3af44dc10
feat: support {{block.super}}, see #38
2021-01-24 02:57:48 +08:00
Joonas and Jun Yang
de32259bb9
fix: lint
2020-12-18 22:03:58 +08:00
Joonas and Jun Yang
d70cd2a1ea
feat: add preserveTimezones option
2020-12-18 22:03:58 +08:00
Joonas and Jun Yang
e3ecfe3adc
fix: simpler timezone regex and non-null offset
2020-12-18 22:03:58 +08:00
wyozi and Jun Yang
c16c787861
feat: parse and handle date timezone offsets
2020-12-18 22:03:58 +08:00
Alex de Wergifosse and Jun Yang
b8e4b3337b
test: add tests for keepOutputType option
2020-12-16 10:20:10 +08:00
harttle
117673a725
style: make eslint check .ts files
2020-12-08 00:24:07 +08:00
harttle
2bbf50171b
fix: elsif is not supported for unless, fixes #268
2020-12-08 00:16:36 +08:00
harttle
a492d8e23d
fix: raw block not ignoring {% characters, fixes #263
2020-12-08 00:12:20 +08:00
sschuldenzucker and Jun Yang
6f2b24f7ca
implement lenientIf for the unless tag, too
2020-12-06 22:58:08 +08:00
sschuldenzucker and Jun Yang
768fb79e32
Implement lenientIf option ( resolve #265 ; default off)
...
See description of the option in liquid-options.ts.
2020-12-06 22:58:08 +08:00
sschuldenzucker and Jun Yang
c920ebb282
fix test: don't pass {} for Context
2020-12-06 22:58:08 +08:00
harttle
72ee7b4c1e
feat: support jsTruthy, #255 #257
2020-10-08 13:11:02 +08:00
harttle
5b3f4195f0
fix: allow quoted variable name in capture, fixes #252
2020-10-03 22:03:17 +08:00
Tejas Manohar and GitHub
941dd668fe
fix: enumerate Promises (e.g. in for & tablerow) ( #237 )
...
* fix: enumerate Promise<array> (e.g. in {% for ... %})
Previously, a Promise of an array was not being enumerated in
{% for %}, for example. This is misleading since the library
handles promises elsewhere (e.g. if you {% assign x = promiseArray %}
and then {% for v in x %}, it worked just fine.
This PR makes Promises of arrays handled by changing toEnumerable
to handle then-ables. This affects other iterators, too, e.g. tablerow,
so I put in a test for that as well.
2020-06-28 09:55:56 +08:00
harttle
e36f3ff291
feat: async filters, closes #232
2020-06-25 12:30:56 +08:00
harttle
4f17c94988
feat: sort by key, see #227
2020-05-16 00:54:40 +08:00
harttle
2fa4edaa84
docs: more specific description of strftime
2020-04-19 13:15:11 +08:00
Martin Schuster and Jun Yang
a93f11d25a
fix: respect cache render options
2020-04-03 10:42:32 +08:00