Sphinx-doc TOC未使用RTD主题进行更新

时间:2016-10-13 23:24:03

标签: makefile python-sphinx read-the-docs autodoc

我有一个以编程方式生成的sphinx-doc源,它使用了Read-The-Docs主题。源树看起来像:

source
├── conf.py
├── index.rst
├── models
│   ├── 1lin
│   │   ├── 1lin_Amplero.rst
│   │   ├── 1lin_Blodgett.rst
│   │   ├── 1lin_Bugac.rst
│   │   ├── ..
│   │   ├── figures
│   │   │   ├── 1lin_all_PLUMBER_plot_all_metrics.png
│   │   │   ├── 1lin_all_PLUMBER_plot_distribution_metrics.png
│   │   │   ├── 1lin_all_PLUMBER_plot_standard_metrics.png
│   │   │   ├── Amplero
│   │   │   │   ├── 1lin_Amplero_PLUMBER_plot_all_metrics.png
│   │   │   │   ├── 1lin_Amplero_rank_counts_all_metrics.png
│   │   │   ..  .. 
│   │   ├── index.rst
│   │   .. 
│   ├── 2lin
│   │   ├── 2lin_Amplero.rst
│   │   ├── 2lin_Blodgett.rst
│   │   ├── 2lin_Bugac.rst
│   │   │   ..  
│   │   ├── index.rst
│   │   .. 
├── model_search.rst
├── sphinx_static
│   ├── jquery
│   │   ├── AUTHORS.txt
│   ..  ..
├── sphinx_templates
│   └── layout.html
..

index.rst包含TOC,如:

.. toctree::
    :maxdepth: 2

    model_search

    ...

model_search.rst包含所有模型index.rst

.. toctree::
    :maxdepth: 1

    models/1lin/index
    models/2lin/index

    ...

当我最初使用make html构建源代码时,它可以很好地构建,并创建一个包含所有现有模型的TOC。

但是,当我再次添加新模型(例如3lin)和make build时,不会在现有模型的页面上重新生成TOC(1lin,{{ 1}}等。我发现在所有页面上正确重新创建TOC的唯一方法是修改2lin(例如启用/禁用conf.py),或手动autodoc所有相关的touch个文件。

TOC应该在旧模型页面上重新生成,还是这种预期的行为?如果它应该发生,出了什么问题?

1 个答案:

答案 0 :(得分:3)

它的预期行为。 Sphinx仅构建自上次构建以来未更改的文件。您可以touch每个文件,也可以在运行make clean之前运行make html