Skip to content

Releases: PebbleTemplates/pebble

v3.0.0

13 Jul 19:09
Compare
Choose a tag to compare
  • 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

30 Jun 03:32
Compare
Choose a tag to compare
  • loop.length and loop.revindex is not of type Number (#362)

v3.0.0.BETA01

13 Jun 02:22
Compare
Choose a tag to compare
v3.0.0.BETA01 Pre-release
Pre-release
  • 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

14 Jun 10:49
Compare
Choose a tag to compare
  • Implement [java.util.Long] timestamp argument support in date filter (#346)
  • Handle strict mode when accessing map attribute (#356)

v2.6.0

21 May 02:54
Compare
Choose a tag to compare
  • 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

05 May 01:14
Compare
Choose a tag to compare

Bugfix introduced when accessing getClass which will always return null

v2.5.0

02 May 10:23
Compare
Choose a tag to compare
  • 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

21 Apr 19:12
Compare
Choose a tag to compare
  • 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

21 Apr 19:13
Compare
Choose a tag to compare
  • 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

21 Apr 19:14
Compare
Choose a tag to compare
  • 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