Skip to content

Releases: PebbleTemplates/pebble

v2.2.2

21 Apr 19:14
Compare
Choose a tag to compare

v2.2.1

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

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

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

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

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

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

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

21 Apr 19:16
Compare
Choose a tag to compare
  • Added array and map syntax

v1.4.5

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