Releases: PebbleTemplates/pebble
Releases · PebbleTemplates/pebble
v2.2.2
- Improved error when attempting to iterate over a non-iterable object
- Updates to pebble-spring-boot-starter
v2.2.1
- Security Fix: Pebble was only escaping Strings; now it escapes the toString() output of all objects
- Official spring4 extension
- Official spring boot starter
- Bug fix: ConcurrentModificationException when importing macros in nested parallel blocks
- Bug fix: Exceptions in parallel blocks were being swallowed
- Bug fix: Obtaining a dynamic attribute of a variable was being incorrectly cached
- Improved error reporting
v2.2.0
- Added "merge" filter
- Add support for strings to the "contains" operator
- Bug fix: Couldn't invoke methods that had boolean arguments
- Bug fix: Unexpected results when comparing the outputs of the "raw" filter
v2.1.0
- Added method in PebbleEngine.Builder class to completely disable cache
- Improved error message with malformed ternary expression
- Bug fix: NPE when calling bean method will null argument
- Bug fix: relative paths were not platform agnostic
- Bug fix: slice filter failed on integer argument
- Bug fix: Pebble didn't work on GAE due to a restricted class in the JRE
- Backwards incompatibility: Removed method on PebbleEngine.Builder to register a filter as safe and not requiring escaping.
The filter should return an instance of SafeString instead. - Backwards incompatibility: Functions are now escaped unless they return instance of SafeString
v2.0.0
- Support for relative template paths
- Added a "cache" tag to cache portions of a template
- String concatenation with "~" operator
- Added two global variables into the context
- "locale": the current locale
- "template": reference to the actual template. Can be used to get the template name with {{ template.name }}
- "Length" filter
- "Replace" filter
- Support for parallel template parsing
- Additional loop variables: last, first, revindex
- "equals" support for enums
- Added a range function and ability to iterate over a range of characters/numbers
- Added support for BigDecimals
- Expressions are permitted within square bracket notation when accessing maps/arrays/lists
- Better error handling with more informative exceptions
- Ability to add extra variables to the context when "including" another template
- Bug fix: "defined" test did not work as expected in strict mode
- Bug fix: fixed broken "less than equal" comparison
- Backwards incompatibility: "Included" templates run in their own dedicated scope and no longer affect the variables of the template that included it.
- Backwards incompatibility: Constructor for PebbleEngine is now private, must use PebbleEngine.Builder
- Backwards incompatibility: PebbleEngine is immutable once constructed
- Backwards incompatibility: Removed "getExtension" method from PebbleEngine, core extensions must be configured during construction of the PebbleEngine object
- Backwards incompatibility: Removed deprecated LocaleAware interface
- Backwards incompatibility: Extensions are now expected to return NodeVisitorFactory objects instead of NodeVisitors
v1.6.0
- Support for custom escaping strategies
- Support for calling bean methods with primitive argument types
- Bug fix: Fixed issue with delegating loader where it would only use last loader in list of children loaders.
v1.5.2
- Added rsort filter
- i18n extension now supports dynamic variables
- Bug fix: Failure to subscript an array of primitive type
- Bug fix: Global variables were not accessible in template
- Bug fix: Removed invocation of Character.isAlphabetic which is not supported on older android APIs
v1.5.1
- New runtime exception thrown if there's an error invoking a member found via reflection
- New constructor in ClasspathLoader that accepts a custom classloader
- Bug fix: Fixed path separator used in ClasspathLoader to work on Windows
- Bug fix: Fixed path separator used in ServletLoader to work on Windows
v1.5.0
- Added array and map syntax
v1.4.5
- Fixed stack overflow error when using multiple levels of the parent() function
- Fixed platform dependent issues with junit tests
- Bug fix regarding the use of different data types passed to same template which broke an internal cache in the GetAttributeExpression