我有这个文件夹结构,用于在sphinx中生成文档(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)我正在生成custom.js,并且只想为doc-2添加htmls作为脚本标记。
我尝试在根conf.py的设置(App)中添加app.add_javascript(' custom.js '),但是sphinx将custom.js添加到所有生成的htmls中。
我添加了一个doc-1/conf.py并添加了设置(App),但它永远不会被调用,因为我在根目录下使用-c选项从根目录生成htmls。
有没有办法做到这一点,通过让sphinx从子文件夹中尊重conf.py,或者在根conf.py中提供逻辑?
发布于 2017-10-25 00:11:05
我想出了一个解决方案:
将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属性指向正确的相对js文件。我添加了meta标记只是为了响应当前的doc值。当sourcename变量包含doc-2/index.rst.txt值时,将添加脚本。
https://stackoverflow.com/questions/46911929
复制相似问题