From e35c1aa0c4b4f1c3e1d2122ead21e72c555d55f9 Mon Sep 17 00:00:00 2001 From: adi Date: Fri, 12 Feb 2016 14:01:59 +0100 Subject: [PATCH] [Closes #15] Make rendering the markdown abstractable --- markdownx/settings.py | 4 ++++ markdownx/utils.py | 12 ++++++++++++ markdownx/views.py | 10 ++-------- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/markdownx/settings.py b/markdownx/settings.py index c369afb..6dbe8fe 100755 --- a/markdownx/settings.py +++ b/markdownx/settings.py @@ -1,6 +1,10 @@ from django.conf import settings from django.utils.translation import ugettext_lazy as _ + +# Markdownify +MARKDOWNX_MARKDOWNIFY_FUNCTION = getattr(settings, 'MARKDOWNX_MARKDOWNIFY_FUNCTION', 'markdownx.utils.markdownify') + # Markdown extensions MARKDOWNX_MARKDOWN_EXTENSIONS = getattr(settings, 'MARKDOWNX_MARKDOWN_EXTENSIONS', []) MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS = getattr(settings, 'MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS', {}) diff --git a/markdownx/utils.py b/markdownx/utils.py index 57a62af..c5f5579 100755 --- a/markdownx/utils.py +++ b/markdownx/utils.py @@ -1,5 +1,17 @@ +import markdown + from PIL import Image +from .settings import MARKDOWNX_MARKDOWN_EXTENSIONS, MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS + + +def markdownify(content): + return markdown.markdown( + content, + extensions=MARKDOWNX_MARKDOWN_EXTENSIONS, + extension_configs=MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS + ) + def scale_and_crop(image, size, crop=False, upscale=False, quality=None): # Open image and store format/metadata. image.open() diff --git a/markdownx/views.py b/markdownx/views.py index 3075d56..1de7c72 100755 --- a/markdownx/views.py +++ b/markdownx/views.py @@ -1,20 +1,14 @@ -import markdown - from django.views.generic.edit import View, FormView from django.http import HttpResponse, JsonResponse from .forms import ImageForm -from .settings import MARKDOWNX_MARKDOWN_EXTENSIONS, MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS +from .utils import markdownify class MarkdownifyView(View): def post(self, request, *args, **kwargs): - return HttpResponse( - markdown.markdown( - request.POST['content'], - extensions=MARKDOWNX_MARKDOWN_EXTENSIONS, - extension_configs=MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS)) + return HttpResponse(markdownify(request.POST['content'])) class ImageUploadView(FormView):