Django Evade

PyPI version Build status Documentation status

Django Evade is a Django template filter application to pseudo-randomly convert literal HTML characters into equivalent named, numeric, or hexadecimal HTML character entity references.

Useful for obscuring mailto hyperlinks to prevent spammers from collecting e-mail addresses. Inspired by a Django snippet, but rewritten to use the Format Specification Mini-Language. The result is a more severe form of escape, leading to the name “evade.”

Install

$ pip install django-evade

Add to settings.py.

INSTALLED_APPS = [
    # ...
    'evade',
]

Usage

{% load evade_tags %}

{{ "me@example.com"|evade }}

One possible result:

me@example.com

Note the use of named (@), decimal (p), hexadecimal lowercase (m), and hexadecimal uppercase (l) forms, and the varying length of zero fills (m, e). Each character entity reference is pseudo-randomized.

Can also be imported as a standalone Python module:

>>> from evade import evade
>>> evade("©")
'©'
>>> evade("©")
'©'
>>> evade("©")
'©'

Contents

Indices and tables