django stackedit降价编辑器
django-stackedit的Python项目详细描述
功能
- 实时预览
- 与Ace Editor 集成
- 与Semantic-UI 集成
- 支持多个字段(fixed this issue)
- 将图像上传到imgur.com(通过api)和custom uploader。
- 直接提及用户@[username]-(要求用户登录)
- 支持来自(youtube、vimeo、dailymotion、yahoo、veoh和metacafe)的嵌入/iframe视频
- 表情符号:emoji_name:+备忘单
- martor命令参考
- 支持django管理
- 工具栏按钮
- 突出显示pre
预览
要求
- Django>=2.0
- Markdown>=3.0
- requests>=2.12.4
安装
martor可直接从PyPI:
- 安装软件包。
$ pip install martor
- 别忘了将'martor'添加到'INSTALLED_APPS'设置(无迁移)。
# settings.py INSTALLED_APPS = [ .... 'martor', ]
- 将url模式添加到urls.py.
# urls.py # django >= 2.0 urlpatterns = [ ... path('martor/', include('martor.urls')), ] # django <= 1.9 urlpatterns = [ ... url(r'^martor/', include('martor.urls')), ]
- collect将一些martor静态文件包含到您的STATIC_ROOT文件夹中。
./manage.py collectstatic
设置配置settings.py
请在https://api.imgur.com/oauth2/addclient中注册申请 得到IMGUR_CLIENT_ID和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)
检查是否未设置此设置,否则CSRF将不会通过AJAX调用发送:
CSRF_COOKIE_HTTPONLY = False
用法
模型
from django.db import models from martor.models import MartorField class Post(models.Model): description = MartorField()
表单
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)
模板
只需从martor/templatetags/martortags.py加载模板标记,就可以将标记内容安全地作为html输出。
{% load martortags %} {{ field_name|safe_markdown }} # example {{ post.description|safe_markdown }}
自定义上载程序
如果要将上载的图像保存到存储中, martor也提供了处理它的方法。请签出这个WIKI。
从这个存储库测试martor
我想你已经安装了虚拟环境(virtualenviron)。
$ 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
在http://127.0.0.1:8000/simple-form/结帐到您的浏览器。
martor命令参考
注释
martor的灵感来自伟大的django-markdownx、Python Markdown和Online reStructuredText editor。