Jinja2 extension to enable the use of any filter as a custom autescape filter.
Project description
Overview
Jinja2 extension to enable the use of any filter as a custom autoscape filter.
This package allows you to define rules to determine when your custom autoescaping filter will be enabled using the same 'select_autoescape' method you already use to determine when the built-in autoescaping filter is enabled.
Usage
from jinja2_ext_custom_autoescaping import CustomAutoescapeExtension, enable_custom_autoescaping
from jinja2 import Environment, select_autoescape, FileSystemLoader
# Your custom filter...
def my_filter(val):
print(val)
if isinstance(val, str):
return val.replace(r"\\", r"\\\\")
return val
# Here you set the rules for when the built-in autoescaping will be enabled
built_in_select_autoescape = select_autoescape(enabled_extensions=['html', 'htm', 'xml'],
disabled_extensions=['txt', 'tex'],
default_for_string=True,
default=True)
# - select_autoescape is a closure
# - enabled_extensions takes precedence over disabled_extensions, so an extension in both lists will be enabled
# - You most likely do not want to have custom autoescaping on while built-in autoescaping is also on
# Here you set the rules for when your custom autoescaping will be enabled
custom_select_autoescape = select_autoescape(enabled_extensions=['tex', 'txt'],
disabled_extensions=[],
default_for_string=False,
default=False)
# Just focusing on the important parts of your Environment construction.
env = Environment(extensions=[CustomAutoescapeExtension],
loader=FileSystemLoader(['.']),
autoescape=built_in_select_autoescape)
opts = {'custom_select_autoescape': custom_select_autoescape,
'custom_autoescape_filter_name': 'my_filter',
'custom_autoescape_filter_func': my_filter}
# Register the filter and enables autoescaping
enable_custom_autoescaping(env, **opts)
# Now you are ready to go...
template = env.get_template('test_template.txt')
print(template.render(var={'entry 1': 'value 1', 'entry2': r'val\\ue 2'}))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for jinja2-ext-custom-autoescaping-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf0bfa47b6ee914a7288002502c91e8e995d5ed6ad28f61849ee4ed9da7fb387 |
|
MD5 | ecde66e0e6418bc0bd914102ac31ab0d |
|
BLAKE2b-256 | d4dfc7de0fc61715d5563ef01f662617400bffc271ac031e0427d4674303a1ee |
Close
Hashes for jinja2_ext_custom_autoescaping-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eea378d0acff57249c76da7f39221886a831ca164ea3a4065465668a14bbfc03 |
|
MD5 | 31b4da36db915f607e82d9b9f182894f |
|
BLAKE2b-256 | 07c8a5ad8411138f9df4ae1af049e6b594a89e951591481f4b22fc996b38356b |