James and GitHub
3492ff63f4
feat: static variable analysis ( #770 )
...
* feat: static variable analysis
* Accept any iterable from `children`, `arguments`, etc.
* Test analysis of standard tags
* Use `TagToken.tokenizer` instead of creating a new one
* Test analysis of netsted tags
* Group variables by their root value
* Test analysis of nested globals and locals
* Analyze included and rendered templates WIP
* Use existing tokenizer when constructing `Hash`
* Improve test coverage
* Analyze variables from `layout` and `block` tags
* Test analysis of Jekyll style includes
* Handle variables that start with a nested variable
* Async analysis
* Test non-standard tag end to end
* Implement convenience analysis methods on the `Liquid` class
* More analysis convenience methods
* Accept string or template array
* Draft static analysis docs
* Deduplicate variables names
* Fix isolated scope global variable map
* Coerce variables to strings instead of extending String
* Private map instead of extending Map
* Fix e2e test
* Tentatively implement analysis of aliased variables
* Fix nested variable segments array
* Update docs sidebar
2024-12-28 21:35:28 +08:00
Yang Jun
d705888c8d
feat: expose FilterToken to filter this, #762
2024-10-16 22:07:25 +08:00
Harttle and Jun Yang
e347e603d7
feat: precise line/col for tokenization Error, #613
2023-06-04 02:06:42 +08:00
Harttle and Harttle
d24655887f
docs: update docs and demo for Value usage, fixes #568
2022-12-14 02:14:03 +08:00
Jun Yang
92992689cd
refactor: Tag class support in registerTag()
2022-11-27 14:04:01 +08:00
Jun Yang
bb58d3e549
refactor: delay creation of operatorsTrie and hide this implementation
...
BREAKING CHANGE: use `operators` instead of `operatorsTrie` as Tokenizer constructor argument, #500
2022-11-27 14:04:01 +08:00
Harttle and Harttle
95fc705b5d
chore: upgrade typescript
2021-12-11 20:23:09 +08:00
harttle
2f059f6a25
feat: support filters in if/unless/case, see #287
2021-02-12 22:22:41 +08:00
Jason Etcovitch and Jun Yang
befc33c4eb
feat: create trie programmatically in options
2021-02-04 09:11:28 +08:00
harttle
ef43120d6e
test: fix test cases after rebase
2020-12-08 00:20:43 +08:00
harttle
f9f595f0f4
feat: passing liquid to FilterImpl, closes #277
2020-12-08 00:17:27 +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
harttle
c923598b40
fix: coerce to Array in map and where filter
2020-04-01 02:22:44 +08:00
harttle
8daf281fca
fix: throw an error if : omitted unintentionally, #212 , #208
2020-03-31 14:05:38 +08:00
harttle
d2d6a38235
perf: introduce AST to avoid reparse
2020-03-15 02:51:25 +08:00
harttle
3dfdf982c9
perf: remove transient strings to reduce memory
2020-03-14 19:04:18 +08:00
harttle
6ea6881f08
feat: with & for in render tag, closes #195
2020-03-04 07:08:54 +08:00
harttle
df8a919f71
feat: move filters/tags to instances, fixes #188
2020-03-03 00:02:29 +08:00
harttle
60ec74f55d
feat: nested property for the where filter, #178
2019-12-13 01:15:29 +08:00
harttle
b82fa9ed2b
pref: remove await/async from internal async calls
2019-10-26 08:57:33 -05:00
harttle
7fb01ad69a
feat: renderSync, parseAndRenderSync and renderFileSync, see #48
2019-08-26 10:15:43 -05:00
harttle
76019e9e18
refactor: rewrite expression evaluation, fix #130
2019-08-26 10:15:43 -05:00
harttle
ae45c4622e
fix: break/continue omitting output before them, #123
...
BREAKING CHANGE: remove default export, now should be used like import
{Liquid} from 'liquidjs'
2019-08-26 10:15:43 -05:00
Joonas Mertanen and Jun Yang
9956c53b09
Correctly tokenize quotation marks within single token
2019-08-08 08:08:18 -05:00
harttle
88c89fe3b3
style: introduce @typescript-eslint/recommended
2019-07-06 14:33:34 +08:00
harttle
bef290923c
fix: pass drops directly to filters/tags
2019-05-12 20:03:32 +08:00
harttle
82d7673554
perf: use polymophism instead duck test
2019-03-25 20:11:23 +08:00
harttle
45e3c2bb8e
refactor: switch Context <-> Scope concepts
2019-03-25 10:36:23 +08:00
Jun Yang
64e0c876e9
refactor: use camelCase for JavaScript APIs
...
BREAKING CHANGE: Options and method names in JavaScript API are now renamed to cammelCase, for a complete list see #109
2019-03-10 19:21:09 +08:00
Jun Yang
4a8088d4e4
feat: promise support for drops, working on #65
2019-03-10 18:05:52 +08:00
harttle
5ffc904f80
fix: named params for filters, working on #113
2019-03-06 01:30:47 +08:00
harttle
53a835ab54
fix( #108 ): remove absolute path in emitted d.ts
2019-02-26 00:43:30 +08:00
harttle
3b7351d9a0
chore: fix linting
2019-02-24 05:03:59 +08:00
harttle
e977669118
fix: filters break when argument contains [()|, fixes #89
2019-02-24 04:48:42 +08:00
harttle
5b6100d12b
refactor: strictly typed
2019-02-23 00:49:54 +08:00
harttle
fc9ebdb90f
chore(TypeScript): fix linting and generate .d.ts
2019-02-17 18:20:04 +08:00
harttle
677e8511e6
chore(TypeScript): refactor objects into classes
...
fix: `Nil`(null, undefined) now renders as empty string
change: `parser.parseValue()` renamed to `parser.parseOutput`
change: registered tags/filters become static and shared across different liquid instances
2019-02-17 04:55:30 +08:00