NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1670 most downloaded on pub.dev
Jinja2 template engine for Dart. Variables, expressions, control structures and template inheritance.
Last release 28 days ago
10 Sep 2026
Release timing varies
gaps range from 2 weeks to 8 months
Some releases are documented
notes for 15 of 35 stable releases
1 version withdrawn
withdrawn after publishing
8 years old
52 releases · first in 2019
- Bump textwrap to ^2.2.1. - Fix multiple extends error. - Fix replace filter. - Update README.md.
textwrap to ^2.2.1.extends error.replace filter.README.md.Bump the SDK to 3.13.0. Add new lints. Run the formatter. Use the new constructor syntax.
One column per quarter.
Excpetions. Rename name to path .
unnecessary_library_name.name, use only path.name to path.Lexer rewriteTemplateNotFound:
name to pathTemplatesNotFound:
names to pathsTemplateNotFound:
nameTemplatesNotFound:
names- Bump SDK version to 3.11.0. - Update dependencies. - Format.
Fix macro hoisting and runtime argument wrapping #40
Ternary operator (condition ? trueValue : falseValue) as alternative to if-else expressions `jinja {{ user.isAdmin ? "Admin Panel" : "User Panel" }} {
condition ? trueValue : falseValue) as alternative to
if-else expressions{{ user.isAdmin ? "Admin Panel" : "User Panel" }}
{{ score > 60 ? "Pass" : "Fail" }}
??) equivalent to or{{ variable ?? "default" }}
{{ var1 ?? var2 ?? "final" }}
# and @ characters{{ #var }}, {{ var# }}, {{ @variable }}
- Refactoring.
- Fix autoReload logic. - Refactoring.
autoReload logic.try-catch block: `jinja {% try %} {{ x / y }} {% catch exception %} {{ exception | runtimetype }}: {{ exception }} {% endtry %} `
try-catch block:{% try %}
{{ x / y }}
{% catch exception %}
{{ exception | runtimetype }}: {{ exception }}
{% endtry %}
runtimetypeList slices {{ list[start:stop] }}.
{{ list[start:stop] }}.UndefinedError exceptionUndefinedFactory typedefEnvironment:
Environment({UndefinedFactory undefined}) argumentUndefinedFactory undefined fieldTemplate:
Template({UndefinedFactory undefined}) argumentnull (none alias)Nothing published for this version
Nothing published for this version
Nothing published for this version
Template.fromNode({globals}) argument
chrome platform tests.importfromTemplate:
Template.fromNode({globals}) argumentglobals fieldextends statement variantsinclude statement variantsEnvironment:
Environment.lex() return from List<Token> to Iterable<Token>Environment.scan(tokens) argument type from List<Token> to Iterable<Token>FilterArgumentError*args and **kwargs supportTemplate.fromNode(Environment environment, {String? path, required Node body}) constructor
Template:
Template.fromNode(Environment environment, {String? path, required Node body}) constructormacrocallitemstitleEnvironment:
Environment({modifiers}) argument type from List<NodeVisitor> to List<Node Function(Node)>modifiers type from List<NodeVisitor> to List<Node Function(Node)>scan(...) return type from List<Node> to Nodeparse(...) return type from List<Node> to NodeTemplate:
Template({modifiers}) argument type from List<NodeVisitor> to List<Node Function(Node)>truncate arguments are now positionalTemplate:
Template.fromNodes(...) constructorautoescapeforceescapesafeunsafeescapedNothing published for this version
Nothing published for this version
- Internal changes.
- Update links.
passContext and passEnvironment functions
passContext and passEnvironment functionsprint to globals {{ do print(name) }}Environment
Environment({lineCommentPrefix, lineStatementPrefix, newLine, autoReload, modifiers, templates}) constructor argumentsautoReload fieldlexer fieldlineCommentPrefix fieldlineStatementPrefix fieldloader fieldmodifiers fieldnewLine fieldlex methodscan methodparse methodTemplate
Template({path, lineCommentPrefix, lineStatementPrefix, newLine, modifiers, templates}) constructor argumentsrenderTo methodTemplateErrorTemplateSyntaxErrorTemplateAssertionErrorTemplateNotFoundTemplatesNotFoundTemplateRuntimeErrorFilterArgumentErrordowithdictsortreplacereversesafeslicestriptagstruncatewordcountwordwrapitemmaptojsonfiltertestFieldGetter type definition renamed to AttributeGetterdefault filter compare values with null, no boolean argumentdefined and undefined tests compare values with nullEnvironment
Environment({getField}) constructor argument renamed to getAttributegetField field renamed to getAttributeTemplate
Template({parent}) constructor argument renamed to environment
and doesn't copy the environmentrenderMap method renamed to renderLoader.listSources method renamed to listTemplatesMapLoader.mapping field renamed to sourcesFileSystemLoader
FileSystemLoader({paths}) argument is now non-nullable, defaults to ['templates']package:jinja/loaders.dart librarypackage:jinja/get_field.dart library renamed to package:jinja/reflection.dartgetField function renamed to getAttributeUndefined type and missing objectEnvironment.undefined methodTemplate.render methodFileSystemLoader:
FileSystemLoader({path, autoReload}) argumentsautoReload fielddirectory fieldextends statement variantsinclude statement variantsNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →