在django下正确使用markdown实现代码高亮

最近自己在做一个个人博客,做到markdown的时候折腾了两三个小时,网上大部分教程已经失效了或者没有讲清楚。首先在Django下使用markdown目前有两种方法,一种是用python的markdown库将需要的内容转换成html后插入页面,另一种是使用django内置的markdown-deux插件。一开始装的内置插件,后来发现后一种不支持```开头的代码块,所以最后我选择了第一种。

如果只是显示代码块,直接用markdown翻译后的内容插入页面就可以了,但是这样子的话所有的代码都显示在pre和code标签里面没有高亮看不出层次,如果需要高亮的话还需要开启markdown.extensions.codehilite插件,而这个插件的正确工作需要下载Pygments

apt-get install python3-pygments

pygments可以提供一个类似词法解析器的东西,将代码块中的关键词都找出来并显示在不同的class中。
在extensions.codehilite工作过程中会import这个库,如果电脑上没有就只会返回给你一整块代码了
然后对不同的class用不同的css样式,就达到了语法高亮的功能。
markdown
而网上一般的教程都没有提到pygments的功能。具体使用教程可以上网搜一下其他实现。
https://www.jianshu.com/p/898ac2bd41e8

猜你喜欢

转载自blog.csdn.net/kekefen01/article/details/84898493