NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2422 most downloaded on pub.dev
A powerful and extensible Liquid template engine for Dart. Supports full Liquid syntax, custom tags and filters, and high-performance parsing and rendering.
Last release 2 months ago
01 Aug 2026
Release timing varies
gaps range from 2 weeks to 6 months
Nearly every release is documented
notes for 32 of 35 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
37 releases · first in 2024
One column per month.
Fix spelling of pub topic by @parlough in #41
Make the package usable from browser builds - Split the filesystem exports so webdev /browser entrypoints no longer pull in dart:io , allowing the pac
webdev/browser entrypoints no longer pull in dart:io, allowing the package to be used more freely in the browser and in the playground._applyStrftime() converter with d4_time_format package for standard strftime specifiers. Custom %P, %:z, %Z (timezone name), and %q (ordinal suffix) specifiers are preserved via a small shim.Fix keyword word boundary parsing - Keywords empty , true , false , and nil no longer incorrectly match prefixes of identifiers (e.g., empty_title , t
empty, true, false, and nil no longer incorrectly match prefixes of identifiers (e.g., empty_title, true_value, false_flag, nil_check now correctly parse as identifiers)Custom delimiters support - Configure alternative template delimiters via LiquidConfig
LiquidConfig
<% %>, <%= %>), bracket-style ([% %], [[ ]]), or any custom delimitersLiquidConfig.erb for ERB-style templatescreateTagStart(), createTagEnd(), etc.Custom tags using {{ }} syntax must now explicitly declare their delimiter type
If you have a custom tag that uses variable-style delimiters ({{ mytag }}), you must now override delimiterType:
class MyCustomTag with CustomTagParser {
@override
TagDelimiterType get delimiterType => TagDelimiterType.variable;
@override
Parser parser() {
// ... your parser implementation
}
}Custom tags using standard {% %} syntax (the default) require no changes.
TagDelimiterType enum to distinguish custom tag delimiter stylesFull Changelog : v1.4.1...v1.4.2
Full Changelog: v1.4.1...v1.4.2
Full Changelog : v1.4.0...v1.4.1
Full Changelog: v1.4.0...v1.4.1
Generic Buffer by @kingwill101 in #34
{% liquid %} blocks as a statement{% liquid %} blocks{% liquid %} blocks for consistent parsing behavior{% liquid %} output through the active buffer (works correctly inside captures)times) behave correctlyassign inside for loops now persists after the loop while keeping forloop and loop variables local{% liquid %} shorthand syntax and whitespace handling tests{% liquid %} output routingBetter string escaping by @kingwill101 in #33
Fix MapRoot docs by @kingwill101 in #27
Full Changelog: v1.2.0...v1.3.0
Add environment-scoped filter and tag registration
Environment.withStrictMode() constructorComplete documentation overhaul: Added comprehensive documentation system
parse_json filter for parsing JSON strings into Dart objectsappend: features.size)Fix FileSystemRoot to handle null fileSystem argument safely and consistently fallback to LocalFileSystem
- Fix contains operator
allow iterating over key value pairs in for tags
Disable internal resolver/analyzer logging
- Layout tag support - Async rendering support
Added layout tag support with title filter.
Template Enhancements:
Analyzer Improvements:
Filter Enhancements:
- layout tag support
Make sure we register all the missing string filters
- support elseif tags
Start throwing exceptions when parsing fails
For tag: make sure iterable is not null before assignment
Truthy support for binary operators
Nothing published for this version
- array support
Fix parse failure for single { character
- Allow identifiers with hyphens
- Member access fix
Nothing published for this version
- Filtered assignment fix
- Group filters into modules
Nothing published for this version
- Empty type - MapRoot Root implementation
- Filesystem lookup - Render tag
- Support floating point numbers - Support negative numbers
- Add built in filters
- Initial version.
Your coding agent can read these notes before it upgrades. Set up the MCP server →