Releases: PebbleTemplates/pebble
Releases · PebbleTemplates/pebble
v3.0.0
- Java 8
- Macros have access to all variables within the template and are no longer restricted to a "local scope"
- New signature for filters/functions/tests that accepts the PebbleTemplate, EvaluationContext, and line number
- Converted EvaluationContext to an interface with limited access to the underlying implementation
- A "null" used as a boolean expression now throws an error if strict variables is true, treated as "false" otherwise
- Improved error reporting
- Java8 Date API support on date filter
- Replace guava cache with caffeine
- Add String Interpolation (#235)
- Add the possibility to extend attribute access (#258)
- Remove DynamicAttributeProvider
- Render content on demand. Expose getLiteralTemplate(String templateName) (#295)
- Introduce SpecializedWriter, (#358)
- Many performance enhancements
- Method resolution with overloaded method signatures (#367)
- Use AbstractTemplateViewResolverProperties for spring-boot (#369)
v2.6.2
v3.0.0.BETA01
- Java 8
- Macros have access to all variables within the template and are no longer restricted to a "local scope"
- New signature for filters/functions/tests that accepts the PebbleTemplate, EvaluationContext, and line number
- Converted EvaluationContext to an interface with limited access to the underlying implementation
- A "null" used as a boolean expression now throws an error if strict variables is true, treated as "false" otherwise
- Improved error reporting
- Java8 Date API support on date filter
- Replace guava cache with caffeine
- Add String Interpolation (#235)
- Add the possibility to extend attribute access (#258)
- Remove DynamicAttributeProvider
- Render content on demand. Expose getLiteralTemplate(String templateName) (#295)
- Introduce SpecializedWriter, (#358)
- Many performance enhancements
v2.6.1
v2.6.0
- Add support for 'as' and 'from' in import statement (#271)
- Add support for spring-boot-2 (#340)
- Supports empty collection for first filter (#342)
- Add options for literal number types and method finding strategy (#268)
- support L type suffix for literal number which will be treated as Long, such as '123L'.
- Add literalDecimalTreatedAsInteger option for toggling to enable/disable literal decimal treated as integer.
- Add 'greedyMatchMethod' option for toggling to enable/disable greedy matching mode for finding java method. Reduce the limit of the parameter type, try to find other method which has compatible parameter types.
v2.5.1
Bugfix introduced when accessing getClass which will always return null
v2.5.0
- Handle all Iterables and Arrays in JoinFilter (#273)
- Fix NPE in GetAttributeExpression (#299)
- Remove redundant null check before calling operator "instanceof" in OperatorUtils. (#298)
- Handle null values passed to an include statement (#283)
- Fix performance regression issues (#326, #328)
- Add Reverse filter (#315)
- Make "loop.length" and "loop.revindex" be lazy evaluated (#279)
- Fixed security issue which allowed to execute shell command by having access to Java's Class object. It is disabled by default but can be enabled in PebbleEngine Builder (#329)
- Throw ParserException when endBlock not found (#308)
- For tag : add enumeration support (#292)
- Fix operator precedence (#290)
v2.4.0
- Add arrays support for iterable test (#254)
- Bugfix for variable which was accessible outside a loop (#250)
- Syntax builder return itself for method chaining (#259)
- Macros are called too often if included multiple times
- Fix potential null pointer exception in PebbleException (#243)
- Fix for accessing map via primitive (#196)
- Output filename and line number of non-existent macro
- Fix for null pointer and index out of bounds exceptions when invalid or no endif/endfor tags are used in template (#266)
- Add DynamicAttributeProvider interface. When implemented by an object, tells the expression parser that this object is able to provide attributes dynamically, given their names and the potential arguments(#230)
- Add rendering of single blocks, similar to the Twig renderBlock() method.
v2.3.0
- Upgrade SLF4J from 1.6.1 to 1.7.21
- "raw" filter works for all variables, not just strings
- Improved error reporting for binary operators
- Added setting to disable the trimming of newlines after pebble tags
v2.2.3
- Bug fix: Fix the use of the "set" tag within a for loop
- Bug fix: Fix the concatenation of SafeString (ex. the output of two macros)
- Added misc getters to various internal nodes