diff --git a/README.md b/README.md index 1d21108..c1a7dc8 100755 --- a/README.md +++ b/README.md @@ -165,6 +165,7 @@ Place settings in your `settings.py` to override default values: ```python #settings.py MARKDOWNX_MARKDOWN_EXTENSIONS = [] +MARKDOWNX_URLS_PATH = '/markdownx/markdownify/' # Urls path that returns compiled markdown text. Change this path to your custom app url. That could i.e. enable do some additional work with compiled markdown text. MARKDOWNX_MEDIA_PATH = 'markdownx/' # subdirectory, where images will be stored in MEDIA_ROOT folder MARKDOWNX_UPLOAD_MAX_SIZE = 52428800 # 50MB MARKDOWNX_UPLOAD_CONTENT_TYPES = ['image/jpeg', 'image/png'] @@ -179,6 +180,25 @@ MARKDOWNX_EDITOR_RESIZABLE = True # update editor's height to inner content heig * **crop** – default: `False` – if `True` use `size` to crop final image * **upscale** – default: `False` – if image dimensions are smaller than those in `size`, upscale image to `size` dimensions +## Custom MARKDOWNX_URLS_PATH + +Change this path to your app path in `urls.py`. Default view that compiles markdown text: + +```python +#views.py +import markdown + +from django.http import HttpResponse +from django.views.generic.edit import View + +from _your_app_.settings import MARKDOWNX_MARKDOWN_EXTENSIONS + +class MarkdownifyView(View): + + def post(self, request, *args, **kwargs): + return HttpResponse(markdown.markdown(request.POST['content'], extensions=MARKDOWNX_MARKDOWN_EXTENSIONS)) +``` + ## Widget's template Default widget's template looks like: @@ -212,6 +232,10 @@ When you want to use Bootstrap 3 and side-by-side panes (as in preview image abo # Changelog +###### v1.2 + +* Added custom url path setting MARKDOWNX_URLS_PATH to compile markdown with custom view (i.e. for pre/post altering markdown text) + ###### v1.1.3 * Setup tools fix diff --git a/markdownx/settings.py b/markdownx/settings.py index 288ad7c..2b9040c 100755 --- a/markdownx/settings.py +++ b/markdownx/settings.py @@ -4,6 +4,9 @@ from django.utils.translation import ugettext_lazy as _ # Markdown extensions MARKDOWNX_MARKDOWN_EXTENSIONS = getattr(settings, 'MARKDOWNX_MARKDOWN_EXTENSIONS', []) +# Markdown url +MARKDOWNX_URLS_PATH = getattr(settings, 'MARKDOWNX_URLS_PATH', '/markdownx/markdownify/') + # Media path MARKDOWNX_MEDIA_PATH = getattr(settings, 'MARKDOWNX_MEDIA_PATH', 'markdownx/') diff --git a/markdownx/static/markdownx/js/markdownx.js b/markdownx/static/markdownx/js/markdownx.js index 05b3972..be8cc6f 100644 --- a/markdownx/static/markdownx/js/markdownx.js +++ b/markdownx/static/markdownx/js/markdownx.js @@ -13,7 +13,7 @@ $.ajax({ type: 'POST', - url: '/markdownx/markdownify/', + url: markdownxEditor.data("markdownxUrlsPath"), data: form, processData: false, contentType: false, diff --git a/markdownx/widgets.py b/markdownx/widgets.py index 872b2c4..cc4d86b 100755 --- a/markdownx/widgets.py +++ b/markdownx/widgets.py @@ -3,7 +3,10 @@ from django.template import Context from django.template.loader import get_template from django.contrib.admin import widgets -from .settings import MARKDOWNX_EDITOR_RESIZABLE +from .settings import ( + MARKDOWNX_EDITOR_RESIZABLE, + MARKDOWNX_URLS_PATH, +) class MarkdownxWidget(forms.Textarea): @@ -17,6 +20,7 @@ class MarkdownxWidget(forms.Textarea): attrs.update({'class':'markdownx-editor'}) attrs['data-markdownx-editor-resizable'] = MARKDOWNX_EDITOR_RESIZABLE + attrs['data-markdownx-urls-path'] = MARKDOWNX_URLS_PATH widget = super(MarkdownxWidget, self).render(name, value, attrs) diff --git a/setup.py b/setup.py index e8b52b8..5b5114a 100755 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ def get_requirements(): setup( name='django-markdownx', - version='1.1.3', + version='1.2', packages=find_packages(), include_package_data=True, description='Django Markdown editor with image uploads (stored in MEDIA_ROOT folder) and live preview.',