@register.filter("urlize_html") def urlize_html(html): """ Returns urls found in an (X)HTML text node element as urls via Django urlize filter. """ try: from BeautifulSoup import BeautifulSoup from django.utils.html import urlize except ImportError: if settings.DEBUG: raise template.TemplateSyntaxError, "Error in urlize_html The Python BeautifulSoup libraries aren't installed." return html else: soup = BeautifulSoup(html) textNodes = soup.findAll(text=True) for textNode in textNodes: urlizedText = urlize(textNode) textNode.replaceWith(urlizedText) return str(soup)