Django Evade¶
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("©")
'©'