python-Markdown 语法和代码高亮

为了让博客文章具有良好的排版,显示更加丰富的格式,我们使用 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/

这里可以在线选择各种高亮样式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容