NAME

Jinja2::TT2::Filters - Map Jinja2 filters to TT2 equivalents

SYNOPSIS

use Jinja2::TT2::Filters;

my $filters = Jinja2::TT2::Filters->new();
my $tt2 = $filters->map_filter('upper', []);
# Returns: { type => 'vmethod', name => 'upper' }

DESCRIPTION

Maps Jinja2 filter names to their Template Toolkit 2 equivalents. Handles vmethods, filters, and custom transformations.

FILTER MAPPING TABLE

Direct Equivalents

Jinja2          TT2 Equivalent
------          --------------
upper           .upper (vmethod)
lower           .lower (vmethod)
trim            .trim (vmethod)
first           .first (vmethod)
last            .last (vmethod)
length          .size (vmethod)
reverse         .reverse (vmethod)
sort            .sort (vmethod)
join            .join (vmethod)
escape/e        | html_entity
urlencode       | uri

Requires Plugins

Jinja2          TT2 Plugin
------          ----------
tojson          Template::Plugin::JSON
pprint          Template::Plugin::Dumper
striptags       Template::Plugin::HTML

No Direct Equivalent

filesizeformat, urlize, selectattr, rejectattr, groupby, map, xmlattr

These should be implemented as custom vmethods or plugins.

METHODS

map_filter($name, \@args)

Returns a hashref describing how to emit the filter in TT2.

register_filter($name, \%mapping)

Add a custom filter mapping.

list_filters()

Returns a list of all known filter names.

has_equivalent($name)

Returns true if the filter has a working TT2 equivalent.