我有一个使用Read-The-Docs主题的程序化生成的sphinx-doc源。源代码树看起来是这样的。
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
s:
.. toctree::
:maxdepth: 1
models/1lin/index
models/2lin/index
...
当我最初建立源码的时候 make html
它构建得很好,并创建了一个包含所有现有模型的TOC。
然而,当我添加一个新的模型(如 3lin
),然后 make build
同样,TOC也不会在现有模型的页面上再生 (1lin
, 2lin
等)。) 我发现在所有页面上正确地重新创建TOC的唯一方法是,要么修改 conf.py
(如:启用、禁用 autodoc
),或手动 touch
所有相关 .rst
文件。
TOC应该在旧的模型页面上重新生成,还是说这是预期的行为?如果它应该发生,是什么问题?
这是预期的行为。Sphinx 只构建自上次构建后没有改变的文件。您可以 touch
每个文件,或者您可以运行 make clean
运转前 make html
.