You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让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隐藏,可添加自定义样式显示行号:

  1. 在项目根目录创建_static/custom.css文件,写入:
div.highlight pre {
    padding-left: 4em;
}
.linenodiv pre {
    left: 0;
    padding-right: 1em;
}
  1. 在conf.py中引入自定义CSS:
html_css_files = ['custom.css']
  1. 重新构建HTML。

内容的提问来源于stack exchange,提问作者ilovewt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:39:23