The main breaking change is about custom filters, they now require the filter_fn attribute. More information about it in the askama book.
(❗ = breaking change)
New features
❗ add caller pattern from jinja❗ by @pollend in https://github.com/askama-rs/askama/pull/422
❗Add new reject filter❗ by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/430
❗Treat caller() as variable with support for aliasing❗ by @seijikun in https://github.com/askama-rs/askama/pull/510
❗Add filters |default, |assigned_or and |defined_or❗ by @Kijewski in https://github.com/askama-rs/askama/pull/425
❗Update minimum supported rust version to 1.88❗ by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/523
❗Add askama::filter_fn proc-macro for custom filters with named/optional arg support❗ by @seijikun in https://github.com/askama-rs/askama/pull/545
Implement enum variants by @Kijewski in https://github.com/askama-rs/askama/pull/255
Allow filters with explicit path by @Kijewski in https://github.com/askama-rs/askama/pull/435
Add support for mutable variables by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/462
Add support for macro default value generics by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/522
Add support for expression-call syntax for macros by @seijikun in https://github.com/askama-rs/askama/pull/518
Implement #531: Allow named arguments in call expr macro invocations by @seijikun in https://github.com/askama-rs/askama/pull/533
Add support for array repeat syntax: [<element_expr>; <cnt_expr>] by @seijikun in https://github.com/askama-rs/askama/pull/626
Add support for struct expressions by @VojtaStanek in https://github.com/askama-rs/askama/pull/602
format non base 10 numbers at compile time by @tdelabro in https://github.com/askama-rs/askama/pull/620
Add new tag to declare variable without value by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/613
Major internal changes
Improve error location to give better errors:
Greatly improve error messages on nightly by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/525
Generate a TokenStream rather than a String by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/558
parser: use LocatingSlice<&str> instead of &str by @Kijewski in https://github.com/askama-rs/askama/pull/560
Use Parser::[with_]span() to get byte range and use byte range for proc_macro::Span by @Kijewski in https://github.com/askama-rs/askama/pull/571
Other
❗ filesizeformat with proper accuracy❗ by @seijikun in https://github.com/askama-rs/askama/pull/568
Filters linebreaks, paragraphbreaks and linebreaksbr only need core by @Kijewski in https://github.com/askama-rs/askama/pull/486
Emit an error if an extends block doesn't come first in a template by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/584
Book/documentation
Fix tiny wording error in "Calling functions" docs by @m4tx in https://github.com/askama-rs/askama/pull/423
book: complete note about filter change by @martinetd in https://github.com/askama-rs/askama/pull/453
Update ref documentation by @sinder38 in https://github.com/askama-rs/askama/pull/456
Update performance.md by @zamazan4ik in https://github.com/askama-rs/askama/pull/188
book: document all crates on readthedocs by @Kijewski in https://github.com/askama-rs/askama/pull/473
Fixed typos in template syntax book docs in https://github.com/askama-rs/askama/pull/494
book: update mdbook version and highlight jinja blocks by @Kijewski in https://github.com/askama-rs/askama/pull/544
Improve documentation by @seijikun in https://github.com/askama-rs/askama/pull/554
Minor documentation fixes by @seijikun in https://github.com/askama-rs/askama/pull/555
Fix some code examples annotations by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/577
Add missing documentation about for loop features by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/576
book: add question mark operator by @VojtaStanek in https://github.com/askama-rs/askama/pull/601
book: add syntax summary by @VojtaStanek in https://github.com/askama-rs/askama/pull/603
book: fix rust-docs on readthedocs by @Kijewski in https://github.com/askama-rs/askama/pull/528
Internal changes
Add tests for jinja examples in our book by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/574
Make code generator re-usable for other projects by @Kijewski in https://github.com/askama-rs/askama/pull/434
parser: simplify {# comment #} parsing by @Kijewski in https://github.com/askama-rs/askama/pull/488
Rename Expr::Attr into Expr::AssociatedItem by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/499
parser: introduce more types for Expr variants by @Kijewski in https://github.com/askama-rs/askama/pull/498
parser: refactor |filter and {% filter %} parsing by @Kijewski in https://github.com/askama-rs/askama/pull/500
Use if-let-chains by @Kijewski in https://github.com/askama-rs/askama/pull/527
derive: more if-let by @Kijewski in https://github.com/askama-rs/askama/pull/532
derive: dedupe visit custom filters code by @Kijewski in https://github.com/askama-rs/askama/pull/470
Performance
Add missing #[inline] annotations by @Kijewski in https://github.com/askama-rs/askama/pull/421
parser: un-inline error message generation by @Kijewski in https://github.com/askama-rs/askama/pull/501
Refactor indent Filter Implementation by @strickczq in https://github.com/askama-rs/askama/pull/466
Make wordcount filter work with core only by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/480
derive: un-inline Expr::Call handling for {{ expressions }} and remove parentheses by @Kijewski in https://github.com/askama-rs/askama/pull/540
parser/derive: replaces usages of Expr/Node with Box<Expr>/Box<Node> by @Kijewski in https://github.com/askama-rs/askama/pull/542
parser: remove one indirection in punction() finding by @Kijewski in https://github.com/askama-rs/askama/pull/543
filter_fn: Aggressive inlining for builder invocation methods by @seijikun in https://github.com/askama-rs/askama/pull/616
loop.first is known by being at index == 0 by @Kijewski in https://github.com/askama-rs/askama/pull/436
Bugfixes
generator: remove invisible group from output by @Kijewski in https://github.com/askama-rs/askama/pull/419
Relax Sized constraint on impl FastWritable for Cow by @C0D3-M4513R in https://github.com/askama-rs/askama/pull/432
Ignore fuzzing corpus from source line count by @Kijewski in https://github.com/askama-rs/askama/pull/433
Use unicode-ident to determine what is an identifier by @Kijewski in https://github.com/askama-rs/askama/pull/443
derive: prefix more generated variables with __askama by @Kijewski in https://github.com/askama-rs/askama/pull/444
derive: don't suppress fatal errors in integer parsing by @Kijewski in https://github.com/askama-rs/askama/pull/448
Print invalid generated code during panic by @Kijewski in https://github.com/askama-rs/askama/pull/446
Prevent crate to be used as identifier by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/450
Comparison operators cannot be chained by @Kijewski in https://github.com/askama-rs/askama/pull/457
Correctly escape and reject macro names by @Kijewski in https://github.com/askama-rs/askama/pull/460
parser: macro calls need proper tokens by @Kijewski in https://github.com/askama-rs/askama/pull/468
Resolve with macro with call after caller by @pollend in https://github.com/askama-rs/askama/pull/469
parser: recognize/reject prefixed ids and lits in macro calls by @Kijewski in https://github.com/askama-rs/askama/pull/476
parser: reject illegal string literals by @Kijewski in https://github.com/askama-rs/askama/pull/479
Rename LoopItem::index to LoopItem::index0 by @Kijewski in https://github.com/askama-rs/askama/pull/481
parser: reject isolated CRs in string literals by @Kijewski in https://github.com/askama-rs/askama/pull/483
parser: better error message for bare CRs by @Kijewski in https://github.com/askama-rs/askama/pull/485
parser: U+10FFFF is the highest Unicode codepoint by @Kijewski in https://github.com/askama-rs/askama/pull/484
parser: recognize comments in macro calls by @Kijewski in https://github.com/askama-rs/askama/pull/487
parser: implement {% raw %} and Lit::parse() without skip_till by @Kijewski in https://github.com/askama-rs/askama/pull/489
parser: fix {% raw %} for delimiters starting with - by @Kijewski in https://github.com/askama-rs/askama/pull/491
parser: string literal must not be immediately followed by suffix# by @Kijewski in https://github.com/askama-rs/askama/pull/496
parser: reject illegal raw identifiers in attribute access & ensure valid paths in generics by @Kijewski in https://github.com/askama-rs/askama/pull/497
parser: understand nested block comments in macro calls by @Kijewski in https://github.com/askama-rs/askama/pull/504
Fix panic when using include in call block by @seijikun in https://github.com/askama-rs/askama/pull/516
parser: fix check_expr() recursion by @Kijewski in https://github.com/askama-rs/askama/pull/519
parser: reject isolated CR in macro inputs, too by @Kijewski in https://github.com/askama-rs/askama/pull/524
parser: reject bare CR in doc comments by @Kijewski in https://github.com/askama-rs/askama/pull/526
Fix fuzzing macro argument parsing bug by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/530
derive: make EvaluatedResult know its unknown result by @Kijewski in https://github.com/askama-rs/askama/pull/538
parser: un-inline more error messages by @Kijewski in https://github.com/askama-rs/askama/pull/539
parser: fail on unterminated byte literal by @Kijewski in https://github.com/askama-rs/askama/pull/547
derive: track included files with relative path by @Kijewski in https://github.com/askama-rs/askama/pull/546
parser: r#self is not a valid raw identifier in macro calls by @Kijewski in https://github.com/askama-rs/askama/pull/553
parser/derive: use only one hasher throughout the proc_macro by @Kijewski in https://github.com/askama-rs/askama/pull/557
Fix wrong span context for askama variables by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/565
Fix invalid handling of paths starting with :: by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/569
README: fix a link, include readmes in lib.rs by @Kijewski in https://github.com/askama-rs/askama/pull/573
Fix wrong macro argument parsing by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/570
parser: r#_ is not a valid identifier by @Kijewski in https://github.com/askama-rs/askama/pull/579
parser: reject unclosed prefixed string by @Kijewski in https://github.com/askama-rs/askama/pull/582
Emit warnings if duplicated block calls are done by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/580
Fix block duplication warning by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/586
Fix wrong parsing of number if digit does not match base by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/600
Fix formatting of safe filter in template_syntax.md by @FalkWoldmann in https://github.com/askama-rs/askama/pull/587
Limit maximum number of references in generics to prevent syn stack overflow by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/611
Fix nested includes not handled properly by @fbilhaut in https://github.com/askama-rs/askama/pull/619
filter_fn: Further improve invalid invocation compile error messages by @seijikun in https://github.com/askama-rs/askama/pull/614
Fix method call on enum variant templates by @GuillaumeGomez in https://github.com/askama-rs/askama/pull/635
New Contributors
@C0D3-M4513R made their first contribution in https://github.com/askama-rs/askama/pull/432
@martinetd made their first contribution in https://github.com/askama-rs/askama/pull/453
@pollend made their first contribution in https://github.com/askama-rs/askama/pull/422
@sinder38 made their first contribution in https://github.com/askama-rs/askama/pull/456
@zamazan4ik made their first contribution in https://github.com/askama-rs/askama/pull/188
@seijikun made their first contribution in https://github.com/askama-rs/askama/pull/516
@VojtaStanek made their first contribution in https://github.com/askama-rs/askama/pull/601
@FalkWoldmann made their first contribution in https://github.com/askama-rs/askama/pull/587
@fbilhaut made their first contribution in https://github.com/askama-rs/askama/pull/619
@tdelabro made their first contribution in https://github.com/askama-rs/askama/pull/620
@bwcii made their first contribution in https://github.com/askama-rs/askama/pull/630
Full Changelog: https://github.com/askama-rs/askama/compare/v0.14.0...v0.15.0