Jason Garber and Jun Yang
0b4e2a9979
fix: strftime getSuffix works for all dates
...
As written, the strftime module's `getSuffix` method (responsible for
returning a date's ordinal string) works correctly for all dates in a
month _except_ 11, 12, and 13.
The existing code would return a string based on the last digit of the
date. In American English, these three dates use the `th` suffix rather
than `st`, `nd`, or `rd`.
This refactor/bug fix draws inspiration from Rails' ActiveSupport
ordinal inflector:
https://github.com/rails/rails/blob/main/activesupport/lib/active_support/locale/en.rb
The Ruby code above is designed to work with any number, so the bug fix
to this library is simpler.
The test suite is also updated with additional examples to verify the
correctness of these changes.
2023-06-15 21:01:55 +08:00
Harttle
fcb930f0dd
fix: sample filter randomness and count=1 case
2023-06-04 13:34:16 +08:00
Harttle
3a67eb7f1c
fix: incorrect error message for browser UMD bundle
2023-06-04 12:00:32 +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 Jun Yang
0480d3317d
fix: proper error message for filter syntax error, #610
2023-06-04 02:06:42 +08:00
Tomáš Hübelbauer and GitHub
ba8b842452
feat: Add support for the Jekyll sample filter ( #612 )
...
* Add support for the Jekyll sample filter
See https://jekyllrb.com/docs/liquid/filters
I am sorting the array randomly and then picking the first N items or all items if there is no sample limit.
* Remove incorrect spaces before parens
Typo and copy-paste meet
2023-05-27 00:55:39 +08:00
Tomas Hubelbauer and Jun Yang
dca9ab52b8
Add support for the Jekyll push filter
...
See https://jekyllrb.com/docs/liquid/filters
2023-05-24 02:08:49 +08:00
Harttle and Jun Yang
33b3c010af
fix: incorrect timezone correction for DST dates, fixes #604
2023-04-25 01:28:48 +08:00
Harttle and Jun Yang
21ee27b575
fix: timezoneOffset ignored in date when preserveTimezones is enabled, fixes #605
2023-04-25 01:28:48 +08:00
Jun Yang
7b87ea82d3
feat: JSON format by space in json filter
2023-03-22 00:08:24 +08:00
Harttle and Jun Yang
da93102c1c
chore: upgrade API doc to latest typedoc, fixes #593
2023-03-20 00:41:06 +08:00
Harttle and Jun Yang
c6cde9cd10
chore: migrate test cases from Chai to Jest
2023-03-20 00:41:06 +08:00
Harttle
771b9b9eba
style: fix code style
2023-03-03 00:14:38 +08:00
Harttle
9c0dc5fa39
fix: [expression] apply value equal for arrays, #589
2023-03-02 23:44:56 +08:00
Harttle
42d25902e8
fix: strip_html for multi line <script>/<style>/comments, #70
2023-03-02 23:01:15 +08:00
Jun Yang
d4e519c4a6
chore: update build badge, coverage to 100%, mv DEFAULT_FMT to defaultOptions
2023-02-23 01:05:54 +08:00
prassie and GitHub
3fb66465c6
feat: LiquidOptions.dateFormat to override default date format ( #587 )
...
doc: updates related to LiquidOptions.dateFormat
doc: revamped the date filter doc for easier reference
2023-02-22 23:56:33 +08:00
Slav Ivanov and Harttle
d489916231
fix: "ownPropertyOnly" not respected when passed via "renderOptions"
2023-02-14 22:39:38 +08:00
Harttle and Harttle
3f21382d43
feat: support not operator, #575
2023-01-03 01:34:03 +08:00
Harttle and Harttle
aafaa0b4f9
feat: support calling date without format string, #573
2023-01-03 00:53:33 +08:00
Jun Yang
fb6a9f8717
fix: type compatible with v9 tag definition, support Context as scope in various render APIs, #570
2022-12-18 12:48:06 +08:00
Harttle and Harttle
2663ee16a0
fix: re-export error classes, #569
2022-12-14 02:14:03 +08:00
Harttle and Harttle
d24655887f
docs: update docs and demo for Value usage, fixes #568
2022-12-14 02:14:03 +08:00
Harttle and Harttle
0f4916bc5a
fix: support Context as evalValue parameter, #568
2022-12-12 19:41:29 +08:00
Jun Yang
5ac3765612
chore: update liquid options to match raw filters
2022-12-12 02:32:50 +08:00
Jun Yang
e6db371519
feat: support disable outputEscape for specific filters, #565
2022-12-12 02:17:18 +08:00
Jun Yang
d17813ef52
fix: case should render multiple when statements
2022-12-03 00:14:47 +08:00
James Prior and Jun Yang
6c3f1c1e0c
feat: add remove_last filter
2022-12-02 23:48:50 +08:00
James Prior and Jun Yang
b4d1e27420
feat: add replace_last filter
2022-12-02 23:48:50 +08:00
Harttle and Harttle
89c6c7676d
feat: timezone name for opts.timezoneOffset and date argument, fixes #553
2022-11-30 00:20:12 +08:00
Jun Yang
1380ac931a
refactor: more consistent tags to make it easier to iterate over, #524
2022-11-27 17:29:44 +08:00
Jun Yang
4e1a30a20c
refactor: _evalToken renamed to evalToken
...
BREAKING CHANGE: `evalToken` now returns a generator (LiquidJS async), which is different from `evalToken` in previous LiquidJS versions.
2022-11-27 14:04:02 +08:00
Jun Yang
92992689cd
refactor: Tag class support in registerTag()
2022-11-27 14:04:01 +08:00
Jun Yang
1f6ce7c822
perf: target Node.js 14 for cjs bundle (main entry)
...
BREAKING CHANGE: main entry need Node.js>=14 to run, you can build LiquidJS by your own by using ESM entry.
2022-11-27 14:04:01 +08:00
Jun Yang
7eb621601c
refactor: change ownPropertyOnly default value to true
...
BREAKING CHANGE: `ownPropertyOnly` default value changed to `true`
2022-11-27 14:04:01 +08:00
Jun Yang
ffefd91fbc
refactor: remove toThenable export
...
BREAKING CHANGE: `<liquidjs>.toThenable` is removed, use `<liquidjs>.toPromise` instead
2022-11-27 14:04:01 +08:00
Jun Yang
b115077e12
refactor: remove use of internal Context class in evalValue argument
...
BREAKING CHANGE: `evalValue` won't support `Context` as second argument anymore.
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
Jun Yang
ff112a4750
chore: rename filters to snake style, #487
...
BREAKING CHANGE: keys in `<liquidjs>.filters` are now in snake case (instead of camel case), identical to that in Liquid template.
2022-11-27 14:04:00 +08:00
Jun Yang
7a714855df
feat: support timezone offset argument for date filter, #553
2022-11-27 13:46:51 +08:00
Harttle and Harttle
32f613fb43
fix: truncatewords should use at least one word, #537
2022-10-21 14:40:25 +08:00
Harttle and Harttle
bbf00f37bf
feat: promise in expression & nested property, #533 #276
2022-08-27 23:19:16 +08:00
Harttle and Harttle
071368afe1
feat: use evalValue to parse & render expression, #527
2022-08-24 20:46:22 +08:00
Harttle and Harttle
e874b4060b
feat: export toValueSync & defaultOptions to evaluate expression, see #527
2022-08-15 01:53:48 +08:00
Harttle and Harttle
4ad383d9be
fix: expression support Drop.valueOf, fixes #522
2022-07-21 01:21:58 +08:00
Harttle
c41a5d5bab
fix: throw ParseError instead of RenderError for invalid assign expression, closes #519
2022-07-15 00:41:51 +08:00
Harttle
4289b4e804
refactor: rename toValue to toValueSync
2022-07-10 00:24:00 +08:00
Harttle
c3e51caa70
fix: for tag not respecting Drop#valueOf(), fixes #515
2022-07-09 22:21:51 +08:00
James Prior and Jun Yang
a19feea7c4
feat: iteration protocols
2022-07-09 18:21:54 +08:00
Harttle
3dc4290b56
fix: stack overflow on large number of templates, #513
2022-07-08 01:46:51 +08:00