Example #1
0
# Copyright 2005 (C) Sune Kirkeby -- Licensed under the "X11 License"

def indent_lines(field, arg):
    return field.replace('\n', '\n    ')

from django.core import template
template.register_filter('indent_lines', indent_lines, False)
Example #2
0
# Copyright 2005 (C) Sune Kirkeby -- Licensed under the "X11 License"

import jsonlib

def json_escape(field, arg):
    return jsonlib.write(field)

from django.core import template
template.register_filter('json_escape', json_escape, False)
Example #3
0
# Copyright 2005 (C) Sune Kirkeby -- Licensed under the "X11 License"

def wrap(field, arg):
    return str(field).replace('<textarea ', '<textarea wrap="%s" ' % arg)

from django.core import template
template.register_filter('wrap', wrap, True)
Example #4
0
    while lines:
        if not lines[0].startswith('>'):
            break
        line = lines.pop(0)
        q.append(line[1:].lstrip())

    return '<blockquote>' + render('\n'.join(q)) + '</blockquote>'

def pop_codeblock(lines):
    c = []
    while lines:
        if not lines[0].startswith('    '):
            break
        c.append(lines.pop(0)[4:])
    return '<pre><code>' + escape('\n'.join(c), None) + '</code></pre>'

re_strong = re.compile(r"\*([\w&;/%#'_-]+)\*")
re_em = re.compile(r"_([\w&;/%#'*-]+)_")
re_code = re.compile(r"`([\w &;/%$!*()[\]?.,:{}*+%#'\"_-]+)`")
re_link = re.compile(r"\[([\w&;/%#'_*-]+)\]\(([a-z]+://[a-zA-Z0-9._-]+/[^\]]+)\)")
re_link = re.compile(r"\[([^]]+)\]\(([a-z]+://[a-zA-Z0-9._-]+/[^)]*)\)")
def render_paragraph(p):
    p = re_strong.sub(r'<strong>\1</strong>', p)
    p = re_em.sub(r'<em>\1</em>', p)
    p = re_code.sub(r'<tt>\1</tt>', p)
    p = re_link.sub(r'<a href="\2" rel="nofollow">\1</a>', p)
    return p

from django.core import template
template.register_filter('safe_markdown', render, False)
Example #5
0
    try:
        import textile
    except ImportError:
        return value
    else:
        return textile.textile(value)


def markdown(value, _):
    try:
        import markdown
    except ImportError:
        return value
    else:
        return markdown.markdown(value)


def restructuredtext(value, _):
    try:
        from docutils.core import publish_parts
    except ImportError:
        return value
    else:
        parts = publish_parts(source=value, writer_name="html4css1")
        return parts["fragment"]


template.register_filter("textile", textile, False)
template.register_filter("markdown", markdown, False)
template.register_filter("restructuredtext", restructuredtext, False)
        except TypeError: # len() of unsized object
            pass
    return ''

def phone2numeric(value, _):
    "Takes a phone number and converts it in to its numerical equivalent"
    from django.utils.text import phone2numeric
    return phone2numeric(value)

def pprint(value, _):
    "A wrapper around pprint.pprint -- for debugging, really"
    from pprint import pformat
    return pformat(value)

# Syntax: register_filter(name of filter, callback, has_argument)
register_filter('add', add, True)
register_filter('addslashes', addslashes, False)
register_filter('capfirst', capfirst, False)
register_filter('center', center, True)
register_filter('cut', cut, True)
register_filter('date', date, True)
register_filter('default', default, True)
register_filter('default_if_none', default_if_none, True)
register_filter('dictsort', dictsort, True)
register_filter('dictsortreversed', dictsortreversed, True)
register_filter('divisibleby', divisibleby, True)
register_filter('escape', escape, False)
register_filter('filesizeformat', filesizeformat, False)
register_filter('first', first, False)
register_filter('fix_ampersands', fix_ampersands, False)
register_filter('floatformat', floatformat, False)