Django Markdown插件mdeditor的使用

功能

  1. 支持 Editor.md 大部分功能javascript

    • 支持標準的Markdown 文本、 CommonMark 和 GFM (GitHub Flavored Markdown) 文本;
    • 支持實時預覽、圖片上傳、格式化代碼、搜索替換、皮膚、多語言等。
    • 支持TOC 目錄和表情;
    • 支持 TeX, 流程圖、時序圖等圖表擴展。
  2. 可自定義 Editor.md 工具欄。
  3. 提供了 MDTextField 字段用來支持模型字段使用。
  4. 提供了 MDTextFormField 字段用來支持 Form 和 ModelForm.
  5. 提供了 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, include
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
     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 models
from mdeditor.fields import MDTextField

class DemoModel(models.Model):
    name = models.CharField(max_length=10)
    content = MDTextField()

admin.py中註冊

from django.contrib import admin
from . import models

admin.site.register(models.DemoModel)

遷移數據庫

python manage.py makemigrations
python manage.py migrate

如今後臺的顯示沒有問題,可是前段顯示並無渲染出Markdown樣式。解決方法以下:css

from django.db import models
from mdeditor.fields import MDTextField
import 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方法便可。java

相關文章
相關標籤/搜索