我有一个以编程方式生成的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应该在旧模型页面上重新生成,还是这种预期的行为?如果它应该发生,出了什么问题?
答案 0 :(得分:3)
它的预期行为。 Sphinx仅构建自上次构建以来未更改的文件。您可以touch
每个文件,也可以在运行make clean
之前运行make html
。