FreshMarker 3.0.0 Released

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.

Leave a Comment