django-stackedit 0.0.1

Creator: codyrutscher

Last updated:

Add to Cart

Description:

djangostackedit 0.0.1

martor




Martor is Markdown Editor plugin for Django and new face of DracEditor.


Features

Live Preview
Integrated with Ace Editor
Integrated with Semantic-UI
Support Multiple Fields (fixed this issue)
Upload Image to imgur.com (via API) and custom uploader.
Direct Mention users @[username] - (require user to logged in)
Support embed/iframe video from (Youtube, Vimeo, Dailymotion, Yahoo, Veoh, & Metacafe)
Emoji :emoji_name: + Cheat sheets
Martor Commands Refference
Support Django Admin
Toolbar Buttons
Highlight pre



Preview




Requirements

Django>=2.0
Markdown>=3.0
requests>=2.12.4



Installation
Martor is available directly from PyPI:

Installing the package.

$ pip install martor

Don’t forget to add 'martor' to your 'INSTALLED_APPS' setting (without migrations).

# settings.py
INSTALLED_APPS = [
....
'martor',
]

Add url pattern to your urls.py.

# urls.py
# django >= 2.0
urlpatterns = [
...
path('martor/', include('martor.urls')),
]

# django <= 1.9
urlpatterns = [
...
url(r'^martor/', include('martor.urls')),
]

Collect included some martor static files to your STATIC_ROOT folder.

./manage.py collectstatic


Setting Configurations settings.py
Please register application in https://api.imgur.com/oauth2/addclient
to get IMGUR_CLIENT_ID and IMGUR_API_KEY.
# Global martor settings
# Input: string boolean, `true/false`
MARTOR_ENABLE_CONFIGS = {
'imgur': 'true', # to enable/disable imgur/custom uploader.
'mention': 'false', # to enable/disable mention
'jquery': 'true', # to include/revoke jquery (require for admin default django)
'living': 'false', # to enable/disable live updates in preview
}

# To setup the martor editor with label or not (default is False)
MARTOR_ENABLE_LABEL = False

# Imgur API Keys
MARTOR_IMGUR_CLIENT_ID = 'your-client-id'
MARTOR_IMGUR_API_KEY = 'your-api-key'

# Safe Mode
MARTOR_MARKDOWN_SAFE_MODE = True # default

# Markdownify
MARTOR_MARKDOWNIFY_FUNCTION = 'martor.utils.markdownify' # default
MARTOR_MARKDOWNIFY_URL = '/martor/markdownify/' # default

# Markdown extensions (default)
MARTOR_MARKDOWN_EXTENSIONS = [
'markdown.extensions.extra',
'markdown.extensions.nl2br',
'markdown.extensions.smarty',
'markdown.extensions.fenced_code',

# Custom markdown extensions.
'martor.extensions.urlize',
'martor.extensions.del_ins', # ~~strikethrough~~ and ++underscores++
'martor.extensions.mention', # to parse markdown mention
'martor.extensions.emoji', # to parse markdown emoji
'martor.extensions.mdx_video', # to parse embed/iframe video
]

# Markdown Extensions Configs
MARTOR_MARKDOWN_EXTENSION_CONFIGS = {}

# Markdown urls
MARTOR_UPLOAD_URL = '/martor/uploader/' # default
MARTOR_SEARCH_USERS_URL = '/martor/search-user/' # default

# Markdown Extensions
MARTOR_MARKDOWN_BASE_EMOJI_URL = 'https://assets-cdn.github.com/images/icons/emoji/' # default
MARTOR_MARKDOWN_BASE_MENTION_URL = 'https://python.web.id/author/' # default (change this)
Check this setting is not set else csrf will not be sent over ajax calls:
CSRF_COOKIE_HTTPONLY = False


Usage
Model
from django.db import models
from martor.models import MartorField

class Post(models.Model):
description = MartorField()
Form
from django import forms
from martor.fields import MartorFormField

class PostForm(forms.Form):
description = MartorFormField()
Admin
from django.db import models
from django.contrib import admin

from martor.widgets import AdminMartorWidget

from yourapp.models import YourModel

class YourModelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.TextField: {'widget': AdminMartorWidget},
}

admin.site.register(YourModel, YourModelAdmin)
Template
Simply safe the markdown content as html ouput with loading the templatetags from martor/templatetags/martortags.py.
{% load martortags %}
{{ field_name|safe_markdown }}

# example
{{ post.description|safe_markdown }}


Custom Uploader
If you want to save the images uploaded to your storage,
Martor also provide to handle it. Please checkout this WIKI.


Test the Martor from this Repository
I assume you already setup with virtual enviroment (virtualenv).
$ git clone https://github.com/agusmakmun/django-markdown-editor.git
$ cd django-markdown-editor/ && python setup.py install
$ cd martor_demo/
$ python manage.py makemigrations && python manage.py migrate
$ python manage.py runserver
And let checkout at http://127.0.0.1:8000/simple-form/ to your browser.


Martor Commands Refference



Notes
Martor was inspired by great django-markdownx, Python Markdown and Online reStructuredText editor.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.