@register.filter(needs_autoescape=True) def highlight(text, sterm, autoescape=None): if autoescape: esc = conditional_escape else: esc = lambda x: x pattern = re.compile('(%s)' % esc(sterm), re.IGNORECASE) result = pattern.sub(r'\1',text) return mark_safe(result)