markdown简单实用,使得我们可以更加专注写作本身,而不用为了文章的段落样式而苦恼。
如果你还没有用过Markdown,你可以看看他的简单用法,在这里
在这里我们来简单配置,使得我们的Django应用支持Markdown语法,并且支持不同主题的代码高亮。
首先安装Markdown和pygments,前者使得文章支持Markdown语法,后者可以以css的形式来美化代码区
pip install markdown
pip install pygments
接下来在需要使用Markdown的地方加上如下代码。我们以article.content为例。
import markdown
article.content = markdown.markdown(article.content,
extensions=['markdown.extensions.fenced_code',
'markdown.extensions.extra',
'markdown.extensions.codehilite',
'markdown.extensions.toc',
])
这样,原先的Markdown形式的文本,就会被渲染成HTML文本了,extensions是我们给渲染函数传递的其他参数,
其中,codehilite是语法高亮扩展,其他的两个参数。我也不是太明白。
接着,在模板中就可以使用来引入到模板中。加上过滤safe会告诉Django这是安全的,你不需要做什么。
这样虽然可以使用Markdown了,但我们文章中的代码区并不会被渲染。会跟普通文本一样,可能比普通文本还难看。
这时,Pygments就可以派上用场了,上面我们已经安装过它了,所以我们直接说怎么用。
首先在Django应用的static/css/目录下打开终端,也就是静态文件目录,根据自己实际目录情况,输入下面的命令:
pygmentize -S monokai -f html -a .codehilite > monokia.css
命令执行完毕,你会发现该目录下多了个monokai.css的文件。先解释下上面的命令。
-S 指定主题,跟主题名,有monokai,github, default等等,我比较喜欢monokai
接着在模板中引入此文件即可。这样代码区就会被渲染了,就如本文中的一样。