一个简单的django应用程序来编辑标记文本。
django-mdeditor的Python项目详细描述
django mdeditor
django mdeditor是django基于Editor.md的标记编辑器插件应用程序。
django mdeditor灵感来自伟大的django-ckeditor。
注意:对于标记页呈现问题,建议使用后端呈现。由于Editor.md
已经很长时间没有更新,因此需要调试一些错误和兼容性问题。当然,前端学生可以选择。
功能
- 几乎是editor.md功能
- 支持标准降价/普通降价和gfm(github风格的降价);
- 全功能:实时预览、图像(跨域)上传、预格式化文本/代码块/表插入、搜索替换、主题、多种语言;
- 降价附加服务:支持TOC(目录)、emoji;
- 支持tex(基于katex的乳胶表达式)、标记扩展语法流程图和序列图;
- can constom editor.md工具栏
- mdtextfield字段是为模型提供的,可以直接在django管理中显示。
- 为窗体和模型窗体提供了mdtextform字段。
- mdeditorwidget是为管理自定义小部件提供的。
快速启动
- 安装。
pipenv install django-mdeditor
# or
pip install django-mdeditor
- 将
mdeditor
添加到已安装的应用程序设置中,如下所示:
INSTALLED_APPS=[...'mdeditor',]
- 将“媒体”URL添加到如下设置:
MEDIA_ROOT=os.path.join(BASE_DIR,'uploads')MEDIA_URL='/media/'
在项目中为媒体文件创建文件夹uploads/editor
。
- 将URL添加到您的URL,如下所示:
fromdjango.conf.urlsimporturl,includefromdjango.conf.urls.staticimportstaticfromdjango.confimportsettings...urlpatterns=[...url(r'mdeditor/',include('mdeditor.urls'))]ifsettings.DEBUG:# static files (images, css, javascript, etc.)urlpatterns+=static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
- 像这样写你的模型:
fromdjango.dbimportmodelsfrommdeditor.fieldsimportMDTextFieldclassExampleModel(models.Model):name=models.CharField(max_length=10)content=MDTextField()
在
中注册您的模型admin.py
运行
python manage.py makemigrations
和python manage.py migrate
来创建模型。登录管理员,您可以看到如下标记编辑器文本字段:
用法
使用markdown
编辑模型中的字段使用markdown编辑模型中的字段,我们只需将模型的TextField
替换为MDTextField
。
fromdjango.dbimportmodelsfrommdeditor.fieldsimportMDTextFieldclassExampleModel(models.Model):name=models.CharField(max_length=10)content=MDTextField()
管理员在后台,会自动显示标记编辑富文本。
在前端模板中使用,您可以这样使用:
{%loadstaticfiles%}<!DOCTYPEhtml><htmllang="en"><head><metahttp-equiv="Content-Type"content="text / html; charset = utf-8"/></head><body><formmethod="post"action="./">{%csrf_token%}{{form.media}}{{form.as_p}}<p><inputtype="submit"value="post"></p></form></body></html>
使用markdown
编辑表单中的字段使用markdown编辑表单中的字段,使用MDTextFormField
而不是forms.CharField
,如下所示:
frommdeditor.fieldsimportMDTextFormFieldclassMDEditorForm(forms.Form):name=forms.CharField()content=MDTextFormField()
ModelForm
可自动将对应的模型字段转换为表单字段,可正常使用:
classMDEditorModleForm(forms.ModelForm):classMeta:model=ExampleModelfields='__all__'
使用admin
中的markdown小部件在管理员中使用标记小部件,例如:
fromdjango.contribimportadminfromdjango.dbimportmodels# Register your models here.from.importmodelsasdemo_modelsfrommdeditor.widgetsimportMDEditorWidgetclassExampleModelAdmin(admin.ModelAdmin):formfield_overrides={models.TextField:{'widget':MDEditorWidget}}admin.site.register(demo_models.ExampleModel,ExampleModelAdmin)
自定义工具栏
将以下配置添加到settings
:
MDEDITOR_CONFIGS={'default':{'width':'90% ',# Custom edit box width'heigth':500,# Custom edit box height'toolbar':["undo","redo","|","bold","del","italic","quote","ucwords","uppercase","lowercase","|","h1","h2","h3","h5","h6","|","list-ul","list-ol","hr","|","link","reference-link","image","code","preformatted-text","code-block","table","datetime""emoji","html-entities","pagebreak","goto-line","|","help","info","||","preview","watch","fullscreen"],# custom edit box toolbar 'upload_image_formats':["jpg","jpeg","gif","png","bmp","webp"],# image upload format type'image_folder':'editor',# image save the folder name'theme':'default',# edit box theme, dark / default'preview_theme':'default',# Preview area theme, dark / default'editor_theme':'default',# edit area theme, pastel-on-dark / default'toolbar_autofixed':True,# Whether the toolbar capitals'search_replace':True,# Whether to open the search for replacement'emoji':True,# whether to open the expression function'tex':True,# whether to open the tex chart function'flow_chart':True,# whether to open the flow chart function'sequence':True,# Whether to open the sequence diagram function'watch':True,# Live preview'lineWrapping':False,# lineWrapping'lineNumbers':False# lineNumbers}}
反馈
欢迎使用和反馈!
你可以创建一个issue或加入qq群。