Fork me on GitHub
3.2.2
- Throw a more detailed exception from DefaultAttributeResolver (#653)
- Make expression nodes fully visitable (#657)
- Added getTemplates function to MemoryLoader (#660)
- Generate OSGi metadata into pebble jar to make it OSGi compliant (#663)
- Add flag for parameter name retention in maven compiler plugin (#664)
3.2.1
- Fix the null pointer exception on the replace filter (#650)
- Add native hints for GraalVM (#648)
3.2.0
- Add support for spring framework 6 and spring-boot 3 (#630)
- Bump minimum supported java version to 17 in pebble-spring6 and pebble-spring-boot-starter in order to work with
spring (#630)
- Add a memory loader that supports inheritance and doesn't require a filesystem. This is useful for applications
that retrieve templates from a database for example (#617).
- BREAKING CHANGE: Change default suffix to
.peb
instead of .pebble
in spring boot autoconfiguration (#553)
- BREAKING CHANGE: Rename method
getInstance
to createInstance
in BinaryOperator
interface (#521)
- BREAKING CHANGE: Rename package from
com.mitchellbosecke
to io.pebbletemplates
(#635)
3.1.6
- Make CacheKey class extendible (#604)
- Remove support for spring 1.5.x (#628)
- Fix for older Android versions (#585 #581 #580)
3.1.5
- Add timeZone parameter to date filter (#530)
- Add setting to limit the size of output when evaluating a template (#529)
- Fix variable name starting with operator (#541)
- Added Servlet5Loader to support Servlet 5.0 (#549)
- Throw an error when an import alias references an invalid macro (#559)
- Special for loop variables class, to support all attribute resolvers (#560)
- Support all Java identifiers (#544)
- Provide option to customize stock extensions (#552)
- Cannot use sort filter right after split filter (#568)
- Support array of List in sort filter (#569)
- Extension global variables in macros (#571)
- Add base64 and sha256 filters (#574)
3.1.4
- Slice filter: Use collection size when toIndex is greater than collection size (#504)
- Adjust spring boot doc (#509)
- Build with jdk14 (#508)
- Set proxyBeanMethods to false and build with spring boot 2.3 (#507)
- Add access to Spring Beans/request/session and response when using Pebble with WebFlux (#512)
- Remove allowUnsafeMethods property and replace it with methodAccessValidator. Default one is BlacklistMethodAccessValidtor (#511)
3.1.3
- Allow treating all number literals as BigDecimals to avoid NumberFormatExceptions (#503)
- Custom operator can't use external context (#497)
- Allow all variable names to be retrieve from ScopeChain/Scope (#291)
- Empty map in strict mode does not throw exception (#491)
3.1.2
- Add support for jdk13 (#487)
- Add basic support for Spring 5 WebFlux reactive in Spring Boot 2 (#333)
3.1.1
- Use a list of unsafeMethods and rename allowGetClass to allowUnsafeMethods (#454)
- PebbleTemplateAvailabilityProvider doesn't find template files from the classpath (#464)
- Added inline verbatim description to Verbatim tag documentation (#422)
- Fix issue of embed tag changing cached templates (#475)
- Fixes bug which allowed sequential String literals to be parsed correctly (#482)
- Update to spring boot 2.2 (486)
3.1.0
- BREAKING CHANGES: Consider avoiding feature version in spring boot starter name (#459)
- Upgrade spring boot integration to Spring Boot 2.1 (#460)
- Allow override core operators (#455, #456)
- Allows variables to be set in templates when provided context is an immutable map (#453)
- Fixed a few typos in the docs (#452)
- Remove unnecessary variable 'state' in LexerImpl by using Stack (#450)
- Updates Orchid to 0.17.1 and fixes its breaking changes (#448)
- Null value in a Map should not throw AttributeNotFoundException (#447, #446)
3.0.10
- Add support for JDK 9++ (#442, #443)
- Add macro support for errors(BindingResult) in spring extension
- Add spring-petclinic example
3.0.9
- Add embed tag (#319, #318, #224, #378, #434)
- Offline documentation (#282, #432)
- Make allowGetClass check case insensitive (#435, #436)
3.0.8
3.0.7
- Add Automatic-Module-Name to support Java 9 modules (#416)
3.0.6
- Check that parseNewVariableName() parses a valid identifier (#409)
- Set up Pebble documentation site using Orchid (#411)
- Add twig compatibility matrix documentation (#247)
3.0.5
- Cannot access List methods (#402)
- Implement to boolean smart-casting in OR and AND operators (#405)
3.0.4
- Make NOT operator more tolerant to argument type (#394)
- Make ternary if operator more tolerant to argument type (#399)
- Adjust AndExpression and OrExpression logic (#398)
- Add JSON escaping as part of the default escaping strategies (#395)
3.0.3
- Support more expressions for if operator (#387)
- Consider adding greedyMatchMethod to PebbleProperties (#388)
- Use locale from context for lower/upper filter (#390)
- Restore cache:invalidateAll method (#393)
3.0.2
- Add PebbleCache interface and use ConcurrentMap instead of Caffeine as default template/tag cache (#381)
- Use unbescape instead of Coverity Escapers (#380)
3.0.1
- Macros are restricted to a local scope (#371)
- Macros have access to global attributes via "_context" variable (#242)
3.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)