我有这个文件夹结构,用于在sphinx中生成docs(html):
doc-root
- static (custom.css, custom.js)
- doc-1 (*.rst)
- doc-2 (*.rst)
- doc-3 (*.rst)
conf.py
index.rst (toctree for doc-1, doc-2 and doc-3)
我正在生成htmls,并且只想将custom.js添加为doc-2的脚本标记。
我尝试在root conf.py的setup(app)中添加app.add_javascript('custom.js'),但是sphinx将custom.js添加到所有生成的htmls中。
我添加了一个doc-1 / conf.py并添加了setup(app),但它永远不会被调用,因为我使用root中的-c选项从根目录生成htmls。
有没有办法实现这一点,让sphinx尊重conf.py从其子文件夹中提供,或者在root conf.py中提供逻辑?
答案 0 :(得分:1)
我找到了一个解决方案:
将custom.js添加到_static/
文件夹;然后创建一个包含内容的doc-root/templates/layout.html
文件:
{% extends "!layout.html" %}
{%- block extrahead %}
<meta name="sourcename" content="{{ sourcename }}" />
{% if "doc-2" in sourcename %}
<script type="text/javascript" src="./_static/custom.js"></script>
{% endif %}
{% endblock %}
确保src attr指向正确的相对js文件。我添加了元标记只是为了回显当前的doc值。当sourcename变量包含doc-2 / index.rst.txt值时,将添加脚本。