diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-06-19 20:41:40 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-06-19 20:41:40 -0500 |
commit | 4bf8e8888c7df6717eb43487136cc9d5c155bc6c (patch) | |
tree | 280fb62539a7e36385f705993da0c0361fd79c5c | |
parent | 0692c01e4c7b88ce94fe023607109fb978c36c2e (diff) | |
download | mediagoblin-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.py | 18 | ||||
-rw-r--r-- | mediagoblin/util.py | 11 |
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): |