Django

Code

Show
Ignore:
Timestamp:
12/03/07 11:37:33 (1 year ago)
Author:
jkocherhans
Message:

newforms-admin: Merged changes from trunk up to [6863].

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/newforms-admin

    • Property svnmerge-integrated changed from /django/trunk:1-4345,4350-4357,4359-4365,4371-4372,4374-4377,4380-4386,4388,4390-4391,4400-4402,4404-4408,4410,4412-4419,4426-4427,4430-4432,4434,4441,4443-4444,4446-4447,4450,4452-4453,4455-4458,4476,4503,4546,4564-4569,4580-4586,4617,4630,4641-6390,6392-6782 to /django/trunk:1-4345,4350-4357,4359-4365,4371-4372,4374-4377,4380-4386,4388,4390-4391,4400-4402,4404-4408,4410,4412-4419,4426-4427,4430-4432,4434,4441,4443-4444,4446-4447,4450,4452-4453,4455-4458,4476,4503,4546,4564-4569,4580-4586,4617,4630,4641-6390,6392-6863
  • django/branches/newforms-admin/django/contrib/markup/templatetags/markup.py

    r6776 r6864  
    3333textile.is_safe = True 
    3434 
    35 def markdown(value): 
     35def markdown(value, arg=''): 
     36    """ 
     37    Runs Markdown over a given value, optionally using various 
     38    extensions python-markdown supports. 
     39 
     40    Syntax:: 
     41 
     42        {{ value|markdown:"extension1_name,extension2_name..." }} 
     43 
     44    To enable safe mode, which strips raw HTML and only returns HTML 
     45    generated by actual Markdown syntax, pass "safe" as the first 
     46    extension in the list. 
     47 
     48    If the version of Markdown in use does not support extensions, 
     49    they will be silently ignored. 
     50 
     51    """ 
    3652    try: 
    3753        import markdown 
     
    4157        return force_unicode(value) 
    4258    else: 
    43         return mark_safe(force_unicode(markdown.markdown(smart_str(value)))) 
     59        # markdown.version was first added in 1.6b. The only version of markdown 
     60        # to fully support extensions before 1.6b was the shortlived 1.6a. 
     61        if hasattr(markdown, 'version'): 
     62            extensions = [e for e in arg.split(",") if e] 
     63            if len(extensions) > 0 and extensions[0] == "safe": 
     64                extensions = extensions[1:] 
     65                safe_mode = True 
     66            else: 
     67                safe_mode = False 
     68            return mark_safe(force_unicode(markdown.markdown(smart_str(value), extensions, safe_mode=safe_mode))) 
     69        else: 
     70            return mark_safe(force_unicode(markdown.markdown(smart_str(value)))) 
    4471markdown.is_safe = True 
    4572 
  • django/branches/newforms-admin/django/contrib/markup/tests.py

    r6776 r6864  
    6262        rendered = t.render(Context(locals())).strip() 
    6363        if docutils: 
    64             self.assertEqual(rendered, """<p>Paragraph 1</p> 
     64            # Different versions of docutils return slightly different HTML 
     65            try: 
     66                # Docutils v0.4 and earlier 
     67                self.assertEqual(rendered, """<p>Paragraph 1</p> 
    6568<p>Paragraph 2 with a <a class="reference" href="http://www.example.com/">link</a></p>""") 
     69            except AssertionError, e: 
     70                # Docutils from SVN (which will become 0.5) 
     71                self.assertEqual(rendered, """<p>Paragraph 1</p> 
     72<p>Paragraph 2 with a <a class="reference external" href="http://www.example.com/">link</a></p>""") 
    6673        else: 
    6774            self.assertEqual(rendered, rest_content)