from django import template from django.template.defaultfilters import stringfilter from django.utils.safestring import mark_safe from django.utils.html import conditional_escape import re register = template.Library() @register.filter @stringfilter def mungify(email, text=None, autoescape=None): text = text or email if autoescape: email = conditional_escape(email) text = conditional_escape(text) emailArrayContent = '' textArrayContent = '' r = lambda c: '"' + str(ord(c)) + '",' for c in email: emailArrayContent += r(c) for c in text: textArrayContent += r(c) result = """<script> var _tyjsdf = [%s], _qplmks = [%s]; document.write('<a href="mailto:'); for(_i=0;_i<_tyjsdf.length;_i++){document.write('&#'+_tyjsdf[_i]+';');} document.write('">'); for(_i=0;_i<_qplmks.length;_i++){document.write('&#'+_qplmks[_i]+';');} document.write('</a>'); </script>""" % (re.sub(r',$', '', emailArrayContent), re.sub(r',$', '', textArrayContent)) return mark_safe(result) mungify.needs_autoescape = True