使用nbsphinx与confluencebuilder时如何启用语法高亮?
解决Confluencebuilder中nbsphinx笔记本代码无语法高亮的问题
针对你遇到的nbsphinx生成的Jupyter笔记本代码块在Confluence中语言被设为none、无语法高亮的问题,可以通过以下几种方法强制默认使用Python语法高亮:
方法一:配置nbsphinx强制指定代码单元格的Lexer
在Sphinx的配置文件conf.py中添加以下设置,让nbsphinx为所有代码单元格默认使用Python语法分析器:
nbsphinx_codecell_lexer = 'python'
这个配置会让nbsphinx在处理笔记本时,将所有代码单元格标记为Python语言,confluencebuilder会读取这个标记并设置Confluence代码块的language参数为python。
方法二:直接配置confluencebuilder的全局默认代码语言
如果方法一不生效,可以直接在conf.py中设置confluencebuilder的全局代码语言,强制所有未指定语言的代码块使用Python:
confluence_code_language = 'python'
该参数会覆盖所有代码块的默认语言设置,包括nbsphinx生成的内容。
方法三:确保构建环境中安装IPython
虽然你在ReadTheDocs上通过安装IPython解决过类似问题,但Confluence的构建环境可能缺失该依赖。执行以下命令安装IPython,确保nbsphinx能正确识别代码单元格的语言:
pip install ipython
方法四:手动指定单个笔记本单元格的语言(可选)
如果需要针对特定单元格设置语言,可以在Jupyter笔记本的代码单元格元数据中添加:
{"language": "python"}
不过这种方式适合少量单元格调整,批量场景建议优先使用配置文件设置。
配置完成后重新构建文档,检查输出的Confluence XML内容,确认代码块的language参数已从none变为python,此时Confluence会自动应用Python语法高亮。
内容的提问来源于stack exchange,提问作者LuizFelippe
相关产品推荐
相关产品推荐

