Adds util.cleaned_markdown_conversion() and uses it in the submission process
authorChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 20 Jun 2011 01:41:40 +0000 (20:41 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 20 Jun 2011 01:41:40 +0000 (20:41 -0500)
This simplifies the markdown processing & html cleaning of descritions
and etc by providing a wrapper function that we can use in multiple
locations.

mediagoblin/submit/views.py
mediagoblin/util.py

index 437a5a517bfb756b333f0f974e72953a1f0ca313..6139614ef180b6e30d977ef74bce979af371c3e4 100644 (file)
@@ -19,13 +19,12 @@ from cgi import FieldStorage
 
 from werkzeug.utils import secure_filename
 
-from mediagoblin.util import render_to_response, redirect, clean_html
+from mediagoblin.util import (
+    render_to_response, redirect, cleaned_markdown_conversion)
 from mediagoblin.decorators import require_active_login
 from mediagoblin.submit import forms as submit_forms, security
 from mediagoblin.process_media import process_media_initial
 
-import markdown
-
 
 @require_active_login
 def submit_start(request):
@@ -48,14 +47,13 @@ def submit_start(request):
 
             # create entry and save in database
             entry = request.db.MediaEntry()
-            entry['title'] = request.POST['title'] or unicode(splitext(filename)[0])
+            entry['title'] = (
+                request.POST['title']
+                or unicode(splitext(filename)[0]))
+
             entry['description'] = request.POST.get('description')
-            
-            md = markdown.Markdown(
-                safe_mode = 'escape')
-            entry['description_html'] = clean_html(
-                md.convert(
-                    entry['description']))
+            entry['description_html'] = cleaned_markdown_conversion(
+                entry['description'])
             
             entry['media_type'] = u'image' # heh
             entry['uploader'] = request.user['_id']
index 4d6257284b2aac4547f7f7426810fa38368b4253..0e43a1f5477f14d8921531fb9f4770ccd65d7c2f 100644 (file)
@@ -29,6 +29,7 @@ import jinja2
 import translitcodec
 from webob import Response, exc
 from lxml.html.clean import Cleaner
+import markdown
 
 from mediagoblin import mg_globals
 from mediagoblin.db.util import ObjectId
@@ -375,6 +376,16 @@ def clean_html(html):
     return HTML_CLEANER.clean_html(html)
 
 
+MARKDOWN_INSTANCE = markdown.Markdown(safe_mode='escape')
+
+
+def cleaned_markdown_conversion(text):
+    """
+    Take a block of text, run it through MarkDown, and clean its HTML.
+    """
+    return clean_html(MARKDOWN_INSTANCE.convert(text))
+
+
 SETUP_GETTEXTS = {}
 
 def setup_gettext(locale):