为了让博客文章具有良好的排版,显示更加丰富的格式,我们使用 Markdown 语法来书写我们的博文。Markdown 是一种 HTML 文本标记语言,只要遵循它约定的语法格式,Markdown 的渲染器就能够把我们写的文章转换为标准的 HTML 文档,从而让我们的文章呈现更加丰富的格式,例如标题、列表、代码块等等 HTML 元素。由于 Markdown 语法简单直观,不用超过 5 分钟就可以掌握常用的标记语法,因此大家青睐使用 Markdown 书写 HTML 文档。
用命令
pip install markdown
安装即可
将 Markdown 格式的文本渲染成 HTML 文本非常简单,只需调用这个库的 markdown 方法即可。我们书写的博客文章内容存在 Post 的 body 属性里,回到我们的详情页视图函数,对 post 的 body 的值做一下渲染,把 Markdown 文本转为 HTML 文本再传递给前端:
defget_object(self):
obj=super().get_object()
md=markdown.Markdown(extensions='markdown.extensions.extra','markdown.extensions.codehilite',])
obj.body=md.convert(obj.body)
return obj
这里给 markdown 渲染函数传递了额外的参数 extensions,是对 Markdown 语法的拓展,这里我们使用了2个拓展,分别是 extra、codehilite。extra 本身包含很多拓展,而 codehilite 是语法高亮拓展
目前只是把markdown内容转为html,但是还是没有高亮,还需要安装Pygments
安装命令
pip install Pygments
然后运行命令
pygmentize -f html -a .codehilite -S monokai > pygments.css
该命令会在当前命令路径下生成.css文件,然后在html文件可以引用该css文件即可实现代码高亮,其中default是默认,也可以换成monokai github等
https://pygments.org/demo/
这里可以在线选择各种高亮样式