我正在basic扩展sphinx-doc主题,我注意到基本主题layout.html
script
宏中的以下代码块
{%- for scriptfile in script_files %}
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
{%- endfor %}
这是否意味着我可以在html_theme_options
内添加theme.conf
,如下所示:
[options]
script_files =
在我的conf.py
内,我添加:
html_theme_options = {'script_files': '_static'}
然而,使用这个集合,构建完全混乱并产生垃圾页面,如:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>...</head>
<body>
-->
<!-- my js code but is automatically commented out-->
</body>
</html>
哪个部分出了问题?我应该怎么做才能加载我自己的自定义JavaScript?非常感谢!
答案 0 :(得分:5)
script_files
是模板内部变量。您无法通过html_theme_options
设置它(所有主题变量都有theme_
作为前缀,请参阅下文。)
Sphinx文档解释here如何通过script_files
变量直接在模板文件中添加其他脚本。
如果您认为在conf.py
中定义其他脚本很重要,请按以下步骤操作:
将以下行添加到模板的layout.html
,例如endblock
定义的DOCTYPE
下方:
{% set script_files = script_files + theme_extra_scripts %}
在extra_scripts
中定义主题变量theme.conf
及其默认值:
extra_scripts = []
覆盖conf.py
中的变量:
html_theme_options = {
'extra_scripts': ['_static/test.js']
}