Unreleased
Unreleased - only on Staging
IMPROVED
- Upgraded internal dependencies for improved performance and security
- Clearer error messages for
record_updateandrecord_destroy: When a record with the provided ID cannot be found, the error message now clearly specifies which table was being searched. For example:- Before:
Couldn't find Customization with 'id'=123 - After:
Can't find Boats with id=123
- Before:
assigntag now supports hash/array operations directly: Theassigntag has been extended with capabilities previously only available throughhash_assign(which is now deprecated). You can now use a single, unified syntax for all variable assignments, including initializing hash and array:- Empty hash/array literals:
{% assign foo = {} %},{% assign bar = [] %}(no need to do'{}' | parse_jsonanymore) - Bracket notation:
{% assign foo["bar"] = "baz" %} - Dot notation:
{% assign foo.bar = "baz" %} - Mixed notation (combining dots and brackets):
{% assign foo.bar["baz"] = "qux" %} - Array append with
<<:{% assign foo << 'bar' %}(no need to usearray_addfilter) - Nested operations: Full support for deeply nested hash and array assignments, e.g.,
{% assign foo["bar"]["baz"]["qux"] = [] %}{% assign foo["bar"]["baz"]["qux"] << "first" %} - Performance: Key lookups are pre-computed at parse time for faster rendering
- Empty hash/array literals:
functiontag now supports the same hash/array syntax: Bracket notation, dot notation, mixed notation, and array append with<<now work withfunctiontoo:{% function foo["bar"] = 'partials/compute', input: 'baz' %}{% function foo.bar["baz"] = 'partials/get_name', id: 123 %}{% function foo << 'partials/fetch_item', id: 1 %}