I’m excited to announce the release of FreshMarker 3.0.0! This major version brings significant improvements and modernizations to the template engine.
Key New Features
Enhanced String Manipulation
Powerful new built-ins have been added to make text processing easier:
- is_blank – check for empty or whitespace-only strings
- keep_before / keep_before_last – extract text before a delimiter
- keep_after / keep_after_last – extract text after a delimiter
- match_results (experimental) – advanced regex matching with start, end, and group built-ins
Formatted Concatenation
The new ~~ operator provides formatted concatenation for all primitive types, making string building more intuitive and powerful.
Template Compilation to Java (Experimental)
A groundbreaking new feature allows templates to be compiled directly to Java source code. This enables Ahead-of-Time (AOT) compilation for faster startup times and reduced runtime overhead.
Command-Line Interface (Experimental)
Templates can now be processed directly from the command line with JSON data input and optional type conversions. The CLI provides a flexible way to integrate FreshMarker into build pipelines and automation workflows.
Important: Breaking Changes
This is a major release with breaking changes. The loose end tag syntax is now forbidden, and all previously deprecated code has been removed. The release notes should be reviewed carefully before upgrading.