❶ 10. 支持 markdown 语法和代码高亮
【教程已更新,详情请参阅:Django 博客开发入门教程】
为了提升博客文章的美观性和可读性,我们引入Markdown语法,它是一种简洁易懂的文本标记语言,能将文本转换为包含标题、列表、代码块等元素的HTML文档。Markdown因其易上手特性,深受用户喜爱。让我们在博客中启用Markdown支持。
Markdown文本到HTML的转换通常由第三方库处理,如Python的markdown库。首先,确保在虚拟环境中安装:`pip install markdown`。在后端视图函数中,获取post的body内容后,使用markdown库的函数进行渲染,传递`extensions`参数,如`extra`、`codehilite`和`toc`,以实现更多功能,如代码高亮和自动生成目录。
发布一篇Markdown格式的文章,如测试用例,通过Markdown教程学习基本语法。例如,参考这些资源:
然而,由于安全考虑,Django会默认转义HTML代码。在模板中,为`{{ post.body }}`加上`safe`过滤器,解除转义,才能看到预期的格式。
代码高亮是Markdown的扩展功能,虽已启用`codehilite`,但还需进一步操作。安装Pygments库:`pip install Pygments`。Pygments会自动为代码添加样式,只需在base.html中引入自定义的样式文件,比如``,就能实现代码高亮显示。
现在,你的博客支持Markdown语法,代码高亮效果已实现,可以方便地插入和阅读代码了。