如何用pygments/python-markdown生成匹配Python官方文档样式的HTML代码块
实现Python官方文档样式代码块的解决方案
你的核心问题是选错了Pygments语法解析器:当前使用普通Python语法解析器(对应python语言标注),无法识别交互式会话的提示符与输出,需要使用专门的Python控制台会话解析器。
操作步骤
第一步:修改Markdown代码块的语言标注
把原来的```python改成```pycon,pycon是Pygments对应Python交互式会话的语言别名,会自动识别>>>提示符、代码内容、输出内容三类结构。
正确写法示例:```pycon >>> s = "Hello World!" >>> print(s[0]) H注意不要手动转义`>>>`为`>>>`,直接写原生符号即可,解析过程会自动处理转义。第二步:配置python-markdown高亮参数
确保开启codehilite扩展且启用Pygments作为高亮后端,配置示例如下:import markdown html = markdown.markdown( 你的Markdown内容, extensions=['codehilite'], extension_configs={ 'codehilite': { 'use_pygments': True } } )配置完成后生成的HTML会自动给
>>>加gp类、输出内容加go类,完全符合你的需求。第三步:Django-Markdownx适配
如果你使用django-markdownx,直接在项目settings.py中添加如下配置即可:MARKDOWNX_MARKDOWN_EXTENSIONS = [ 'codehilite', ] MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS = { 'codehilite': { 'use_pygments': True, } }第四步:样式适配
要和Python官方文档样式完全一致,直接使用Pygments自带的sphinx主题(就是Python官方文档使用的高亮主题),执行如下命令生成对应的CSS文件引入页面即可:pygmentize -S sphinx -f html > pygments.css
内容的提问来源于stack exchange,提问作者PythonSherpa
相关产品推荐
相关产品推荐

