Sphinx 侧边栏:包括模块的函数和类的方法

paw*_*moy 5 sidebar python-sphinx

在 Sphinx 文档中,我定义了一个这样的参考文档:

Reference
=========

.. toctree::

   reference_api
   reference_cli
   reference_client
   reference_downloads
   reference_options
   reference_stats
   reference_utils
Run Code Online (Sandbox Code Playgroud)

reference_api文件如下所示:

API module
==========

.. automodule:: aria2p.api
    :no-members:

API
---

.. autoclass:: aria2p.api.API
    :members:
Run Code Online (Sandbox Code Playgroud)

现在我在侧边栏中得到了这个列表:

Reference
  API module
    API
Run Code Online (Sandbox Code Playgroud)

我还想添加:members:侧栏中记录的所有 API 方法,例如:

Reference
  API module
    API
      __init__
      add_magnet
      add_metalink
      ...
Run Code Online (Sandbox Code Playgroud)

这可能吗?我是否应该更改 Sphinx 编写模块函数和类的方法以向它们添加锚点的方式,以便侧边栏可以显示它们?

paw*_*moy 2

Sphinx 5.2.0 现在可以实现这一点。请参阅https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-toc_object_entries_show_parents

toc_object_entries_show_parents
一个字符串,用于确定域对象(例如函数、类、属性等)如何在其目录条目中显示。使用域允许域确定要显示的适当数量的父级。例如,Python 域将显示 Class.method() 和 function(),而忽略模块。父母的水平。这是默认设置。使用 hide 仅显示没有任何父元素的元素的名称(即 method())。使用 all 显示对象的完全限定名称(即 module.Class.method()),显示所有父级。