美文网首页
在django下正确使用markdown实现代码高亮无标题文章

在django下正确使用markdown实现代码高亮无标题文章

作者: 我勒个去oo | 来源:发表于2019-06-11 19:37 被阅读0次


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

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

    apt-get install python3-pygments

    1

    pygments可以提供一个类似词法解析器的东西,将代码块中的关键词都找出来并显示在不同的class中。

    在extensions.codehilite工作过程中会import这个库,如果电脑上没有就只会返回给你一整块代码了

    然后对不同的class用不同的css样式,就达到了语法高亮的功能。

    而网上一般的教程都没有提到pygments的功能。具体使用教程可以上网搜一下其他实现。

    https://www.jianshu.com/p/898ac2bd41e8

    后记,19.5.29

    最后打算把博客移到wordpress上,又遇到了这个问题,其实仔细想想,语法高亮这个问题一共两种解法,反正肯定是要做词法解析的,区别是词法解析是在后端做还是在前端做

    1.后端用python的markdown库来解决token的标签问题,在前端引用css渲染

    2.前端用js做code标签的词法解析,如引入prism.js。我觉得这种方法的拓展性更强,毕竟后端可能更改。

    http://www.95408.com/blog/3415.html

    保持兼容性的最佳解决方案,后端使用editor.md这个md编辑器插件,前端使用prims.js即可

    原文:https://blog.csdn.net/kekefen01/article/details/84898493

    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

          本文标题:在django下正确使用markdown实现代码高亮无标题文章

          本文链接:https://www.haomeiwen.com/subject/ogpudttx.html