pip install django-mdeditor
INSTALLED_APPS = [
'....'
'mdeditor'
]
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads') #新建一个uploads文件夹,且在项目目录下
MEDIA_URL = '/media/' #你上传的文件和图片会默认存在/uploads/editor下 这一步不用创建任何文件夹
urlpatterns = [
'...'
url(r'mdeditor/', include('mdeditor.urls')),
]
from django.conf import settings
from django.conf.urls.static import static
#没有这一步 你添加的图片并不会显示出来
if settings.DEBUG:
# static files (images, css, javascript, etc.)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.db import models
from mdeditor.fields import MDTextField
class Blog(models.Model):
title = models.CharField(max_length=50)
content =MDTextField()#使用markdown
以上已经完成了在后端界面admin中使用markdown
下面我们讲如何在前端界面展现出markdown的效果
pip install markdown#view视图中获取到数据库的数据,修饰为html语句,传到前端
pip install Pygments #实现代码高亮
安装第二个包后还要执行
pygmentize -S default -f html -a .codehilite > code.css
在文件夹下会发现生成了code.css文件,将这个css文件加入到你的static文件夹下css里面(路径自己定,只要用的时候引入正确就行了)
最后一步在需要高亮的html文件里面导入刚刚生成的css文件,例如我的是->要在
<link rel="stylesheet" type="text/css" href="{% static 'css/code.css' %}"> {#语法高亮#}
2.视图中获取数据库信息
import markdown
from .models import *
def blog_detail(request, pk):
context = {}
blog = Blog.objects.get()
blog.content=markdown.markdown(blog.content,extensions=[
'markdown.extensions.extra',
'markdown.extensions.codehilite',#语法高亮拓展
'markdown.extensions.toc'#自动生成目录
])#修改blog.content内容为html
context['blog'] = blog
return render(request, 'blog/blog_detail.html', context)
blog.content=markdown.markdown(blog.content.replace("\r\n",' \n'),extensions=[
'markdown.extensions.extra',
'markdown.extensions.codehilite',
'markdown.extensions.toc'
])
<div class="blog-context">{{ blog.content|safe }}</div>