Sphinx生成HTML文档时单词'module'渲染丢失问题问询
问题归属判定
你所列出的Sphinx官方组件以及你启用的10个扩展,都不会默认生成删除特定文本字符串的JavaScript逻辑,你后续定位到的/source/_templates/layout.html自定义模板就是该代码的唯一来源。
Sphinx本身支持通过_templates目录存放用户自定义模板,这类模板的优先级高于官方默认模板、第三方主题及扩展附带的模板,会在构建时自动合并到最终生成的HTML文件中。
修复方案
方案1:直接移除多余逻辑(优先选择)
编辑/source/_templates/layout.html文件,删除其中负责匹配并删除module字符串的JS函数,重新执行sphinx-build构建文档后,module单词即可正常渲染显示。
方案2:排查模板生成来源(适用于模板非手动修改的场景)
如果确认该layout.html不是项目成员手动编写提交的,可按以下方向排查自动生成来源:
- 检查项目的构建流程中是否存在前置钩子、自定义脚本,这类脚本可能会自动向模板目录注入修改逻辑
- 核查项目依赖中是否包含非官方的Sphinx辅助工具,部分小众周边工具会自动修改模板目录下的文件
快速验证方法
如果需要临时确认问题根源,可直接在浏览器中禁用当前页面的JavaScript后刷新,若module单词正常显示,即可100%确认问题完全来自这段自定义注入的JS代码。
内容的提问来源于stack exchange,提问作者Martí
相关产品推荐
相关产品推荐

