!!!使用 mistune 而非 markdown
mistune 的使用方式较之 markdown 更加方便,渲染速度也更快,而且他可以很方便的和 highlightjs https://highlightjs.org/ 合并使用,非常方便,建议使用这个,而非 markdown.
mistune 的具体使用,可以参考,https://pypi.org/project/mistune/
安装与使用
GitHub 项目目录:https://github.com/Python-Markdown/markdown
代码高亮相关文档:https://python-markdown.github.io/extensions/code_hilite/
完成代码高亮的步骤:
安装 Pygments
...The CodeHilite extension will produce HTML output without Pygments, but it won’t highlight anything... 所以说 CodeHilits 只是起到一个对 Code 内进行识别标记的过程,而渲染高亮,由前端完成,但是可以通过 Pygments 来生成样式。
生成样式
pygmentize -S default -f html -a .codehilite > styles.css
此处相当于生成默认样式。
注:查看 pygmentize 样式,pygmentize -L style
语法
CodeHilite扩展遵循与常规Markdown代码块相同的语法,但是有一点不同的是,CodeHilite 标识语言的方式和 Markdown 的常规方式略有不同。
例如:
- 使用冒号
如果第一行以三个或三个以上的冒号开头,则冒号后的文本标识该语言,在不使用处理和行号之前,从代码块中删除第一行
:::python
print('Hello world.')
- 带有行号
使用例如 #!/usr/bin/python 在开头,会使结果带有行号。
#!/usr/bin/python
# Code goes here ...
关于为什么 markdown 和 highlight.js 不兼容的问题
python-markdown,对于代码段,默认使用的 markdown.extensions.codehilite 对于代码段的包裹,采用的是 div / pre 的形式,而不是 pre / code 的形式,所以 highlight.js 无法自动识别。