为什么使用RTD主题的toctree不能更新?

问题描述 投票:6回答:1

我有一个使用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.rsts:

.. 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应该在旧的模型页面上重新生成,还是说这是预期的行为?如果它应该发生,是什么问题?

makefile python-sphinx read-the-docs autodoc toctree
1个回答
3
投票

这是预期的行为。Sphinx 只构建自上次构建后没有改变的文件。您可以 touch 每个文件,或者您可以运行 make clean 运转前 make html.

© www.soinside.com 2019 - 2024. All rights reserved.