aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2011-06-19 20:41:40 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-06-19 20:41:40 -0500
commit4bf8e8888c7df6717eb43487136cc9d5c155bc6c (patch)
tree280fb62539a7e36385f705993da0c0361fd79c5c
parent0692c01e4c7b88ce94fe023607109fb978c36c2e (diff)
downloadmediagoblin-4bf8e8888c7df6717eb43487136cc9d5c155bc6c.tar.lz
mediagoblin-4bf8e8888c7df6717eb43487136cc9d5c155bc6c.tar.xz
mediagoblin-4bf8e8888c7df6717eb43487136cc9d5c155bc6c.zip
Adds util.cleaned_markdown_conversion() and uses it in the submission process
This simplifies the markdown processing & html cleaning of descritions and etc by providing a wrapper function that we can use in multiple locations.
-rw-r--r--mediagoblin/submit/views.py18
-rw-r--r--mediagoblin/util.py11
2 files changed, 19 insertions, 10 deletions
diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py
index 437a5a51..6139614e 100644
--- a/mediagoblin/submit/views.py
+++ b/mediagoblin/submit/views.py
@@ -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']
diff --git a/mediagoblin/util.py b/mediagoblin/util.py
index 4d625728..0e43a1f5 100644
--- a/mediagoblin/util.py
+++ b/mediagoblin/util.py
@@ -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):