Markdown语法确实比HTML好用
但是后台缺少的是一个能实时预览我输入的markdown语法是否正确的插件。有人说Editor.md
已经很长时间没有维护了,于是心里就有点不想用了。
从这里了解到了django-pagedown
,于是又去啃英文文档了。
最简单的办法使用django-pagedown
本来我也没有必要把这英文文档全部都看懂,只要能满足我的需要就可以了。
- 首先安装django-pagedown,最简单是运行
pip install django-pagedown
- 然后把
pagedown
加到settings.py
里面的INSTALLED_APPS
,像这样:1
2
3
4
5
6
7
8
9
10
11
12
13#settings.py
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Post',
'pagedown',
]
... - 如果
settings.py
的Debug=False
,就运行python manage.py collectstatics
,把所需的静态文件收集起来。 - 修改项目app目录下的admin.py,添加如下内容:
1
2
3
4
5
6
7
8
9
10
11#admin.py
from pagedown.widgets import AdminPagedownWidget
from django.db import models
...
class FooModelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.TextField: {'widget': AdminPagedownWidget}
}
...
admin.site.register(Post, FooModelAdmin)
...官方文档的说法就是,只要Post里面是TextField的字段,都会出现pagedown编辑框,并出现实时预览。
配置完成
理论上来说,以上步骤完成,就可以实现后台实时预览了,看看效果:
请不要过多的在意css,毕竟后台美化还没有提上日程。
对了,代码不高亮是正常的。代码高亮是Pygments
处理的,后台没有必要让它高亮,于是只要出现代码区域,就是正常的。
我有一个想法,不知道对不对。我现在后台实时预览markdown,使用的是django-pagedown
,前台渲染markdown,使用的是mistune
,那么,可不可以把前台和后台统一成一个插件,比如django-pagedown
?