Homepage

Unreleased

Unreleased - only on Staging

IMPROVED

  • Upgraded internal dependencies for improved performance and security
  • Clearer error messages for record_update and record_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
  • assign tag now supports hash/array operations directly: The assign tag has been extended with capabilities previously only available through hash_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_json anymore)
    • 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 use array_add filter)
    • 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
  • function tag now supports the same hash/array syntax: Bracket notation, dot notation, mixed notation, and array append with << now work with function too:
    • {% function foo["bar"] = 'partials/compute', input: 'baz' %}
    • {% function foo.bar["baz"] = 'partials/get_name', id: 123 %}
    • {% function foo << 'partials/fetch_item', id: 1 %}

Questions?

We are always happy to help with any questions you may have.

contact us