如何让d2l-book中Sphinx代码块的linenos语法生效?
解决d2l-book代码块行号不显示的问题
d2l-book基于Sphinx构建,但默认配置或主题可能未启用代码行号显示,可通过以下几种方式解决:
1. 自定义Sphinx配置文件
在项目根目录(myblog)创建conf.py文件,添加配置开启行号支持:
from d2lbook.config import config # 继承d2l-book的基础扩展 extensions = config['sphinx']['extensions'] # 全局开启代码块行号(无需每个代码块手动加:linenos:) highlight_options = {'linenos': True} # 确保主题支持行号显示 html_theme_options = { 'code_linenos': True, }
保存后重新执行构建命令:
d2lbook build html
2. 确认代码块格式正确性
检查rst风格代码块的缩进是否规范,:linenos:需与.. code-block:: python保持同一层级缩进,代码内容再缩进一层:
.. code-block:: python :linenos: a = 1 b = 2
3. 修复CSS样式隐藏问题
若行号已生成但被主题CSS隐藏,可添加自定义样式显示行号:
- 在项目根目录创建
_static/custom.css文件,写入:
div.highlight pre { padding-left: 4em; } .linenodiv pre { left: 0; padding-right: 1em; }
- 在
conf.py中引入自定义CSS:
html_css_files = ['custom.css']
- 重新构建HTML。
内容的提问来源于stack exchange,提问作者ilovewt
相关产品推荐
相关产品推荐

