django stackedit降价编辑器

django-stackedit的Python项目详细描述


集市pypi version

https://img.shields.io/badge/license-GNUGPLv3-blue.svghttps://img.shields.io/pypi/pyversions/martor.svghttps://img.shields.io/badge/Django-1.8,%201.9,%201.10,%201.11,%202.0,%202.1-green.svghttps://travis-ci.org/agusmakmun/django-markdown-editor.svg?branch=master

martor是django的标记编辑器插件,也是draceditor的新面。

功能

  • 实时预览
  • 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

预览

https://raw.githubusercontent.com/agusmakmun/django-markdown-editor/master/__screenshot/martor-preview-editor.pnghttps://raw.githubusercontent.com/agusmakmun/django-markdown-editor/master/__screenshot/martor-preview-result.png

要求

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

安装

martor可直接从PyPI

  1. 安装软件包。
$ pip install martor
  1. 别忘了将'martor'添加到'INSTALLED_APPS'设置(无迁移)
# settings.py
INSTALLED_APPS = [
    ....
    'martor',
]
  1. 将url模式添加到urls.py.
# urls.py
# django >= 2.0
urlpatterns = [
    ...
    path('martor/', include('martor.urls')),
]

# django <= 1.9
urlpatterns = [
    ...
    url(r'^martor/', include('martor.urls')),
]
  1. collect将一些martor静态文件包含到您的STATIC_ROOT文件夹中。
./manage.py collectstatic

设置配置settings.py

请在https://api.imgur.com/oauth2/addclient中注册申请 得到IMGUR_CLIENT_IDIMGUR_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命令参考

https://raw.githubusercontent.com/agusmakmun/django-markdown-editor/master/__screenshot/martor-guide.png

注释

martor的灵感来自伟大的django-markdownxPython MarkdownOnline reStructuredText editor

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java根据收到的短信找出手机的位置   java可以使用selenium在单个脚本中混合ios自动化和web自动化   java如何将@RequestParam映射到对象?   java JFrame关闭操作   java如何使用给定的JNDI名称连接到Websphere数据源?   hibernate Java一对多持久化哈希集   java如何设置JdbcUserDetailsManager以使用我的表?   java JUNIT测试Eclipse IDE引发错误   安卓如何根据Java中对象的一个成员变量从arraylist中删除另一个arraylist中存在的对象?   java使用枚举类中的方法,当在运行时获取枚举时   Java ArrayList中的安卓 NullPointerException   java如何使用jinterop在远程机器中编写二进制文件?   Java是跨平台的吗?   java将主题设置为具有自定义绘图功能的按钮   java Spring安全Oauth2:在Tomcat中成功注销,但在Glashfish中无法注销   使用HttpUrlConnection的Java类引发IOException,无法读取或写入   java Primefaces SelectOneRadio,选择了NoSelection选项   java在安卓中从字符串数组中删除元素   Java异常构造函数和方法   树映射中的java顺序错误