功能
支持 Editor.md 大部分功能
- 支持标准的Markdown 文本、 CommonMark 和 GFM (GitHub Flavored Markdown) 文本;
- 支持实时预览、图片上传、格式化代码、搜索替换、皮肤、多语言等。
- 支持TOC 目录和表情;
- 支持 TeX, 流程图、时序图等图表扩展。
- 可自定义 Editor.md 工具栏。
- 提供了 MDTextField 字段用来支持模型字段使用。
- 提供了 MDTextFormField 字段用来支持 Form 和 ModelForm.
- 提供了 MDEditorWidget 字段用来支持 admin 自定义样式使用。
安装
pip install django-mdeditor
在settings.py
文件中配置
INSTALLED_APPS = [ ... 'mdeditor',]MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')MEDIA_URL = '/media/'
在项目的根urls.py
文件扩展 url 和媒体文件 url
from django.conf.urls import url, includefrom django.conf.urls.static import staticfrom django.conf import settingsurlpatterns = [ url(r'mdeditor/', include('mdeditor.urls'))]if settings.DEBUG: # static files (images, css, javascript, etc.) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
app下的models.py
文件创建模型
from django.db import modelsfrom mdeditor.fields import MDTextFieldclass DemoModel(models.Model): name = models.CharField(max_length=10) content = MDTextField()
在admin.py
中注册
from django.contrib import adminfrom . import modelsadmin.site.register(models.DemoModel)
迁移数据库
python manage.py makemigrationspython manage.py migrate
现在后台的显示没有问题,但是前段显示并没有渲染出Markdown样式。解决方法如下:
from django.db import modelsfrom mdeditor.fields import MDTextFieldimport markdown # 需要pip进行安装class DemoModel(models.Model): name = models.CharField(max_length=10) content = MDTextField() def get_markdown_content(self): return markdown.markdown(self.content, extensions=[ 'markdown.extensions.extra', 'markdown.extensions.codehilite', 'markdown.extensions.toc', ])
添加了上面的代码后,在渲染content字段时调用get_markdown_content
方法即可。