Auto HTML Linebreak filter

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
def autolinebreaks(value, autoescape=None):
    """
    Checks if the content is html or plain text if plain text 
    replaces line breaks with appropriate HTML; a single
    newline becomes an HTML line break (``<br />``) and a new line
    followed by a blank line becomes a paragraph break (``</p>``).
    """
    import re
    html_match = re.compile('<br>|<br />|<p>|<table>', re.IGNORECASE)
    if not html_match.search(value):
        from django.utils.html import linebreaks
        autoescape = autoescape and not isinstance(value, SafeData)
        return mark_safe(linebreaks(value, autoescape))
    else:
        return value
autolinebreaks.is_safe = True
autolinebreaks.needs_autoescape = True
autolinebreaks = stringfilter(autolinebreaks)
register.filter(autolinebreaks)

More like this

  1. HTML to text filter by MasonM 4 years, 9 months ago
  2. Email Munger by cootetom 4 years, 4 months ago
  3. make an unordered html list by techiegurl 4 years, 12 months ago
  4. Custom Django manager that excludes subclasses by sciyoshi 4 years, 9 months ago
  5. wordbreak filter by soniiic 4 years, 1 month ago

Comments

(Forgotten your password?)