Partial Reduction of Range Lists

One of the most useful optimizations in FreshMarker is partial reduction: templates can be partially evaluated in advance if part of the model is already known. Until now, however, partial reduction had a blind spot—List directives with ranges (1..4, 4..1, 1..) were ignored during reduction and passed through as simple, non-reducing fragments. This changes with version 2.7.0.

List Directive Unrolled

The Partial Template Reduction feature allows FreshMarker templates to be simplified. Part of the model is used to evaluate expressions in directives and interpolations and generate a new template. A template reduced in this way contains fewer dynamic and more static parts and can therefore be evaluated more quickly. Until now, list directives were excluded from the simplification options. This can now change under certain circumstances.