我在 Sphinx 中使用 Alabaster 主题。 侧边栏设置为显示本地目录和其他一些内容。 来自conf.py:
html_sidebars = {
'**': [
'localtoc.html',
'searchbox.html'
]
在记录类方法的页面 sartopo_python.rst 上,我手动对方法进行了分类,并添加了节标题以显示每个类别方法的开头:
:tocdepth: 3
sartopo\_python module
======================
.. see https://stackoverflow.com/a/48682589/3577105
.. currentmodule:: sartopo_python
.. autoclass:: SartopoSession
**Session setup methods**
-------------------------
.. automethod:: openMap
.. automethod:: _setupSession
.. automethod:: _sendUserdata
**Account data access methods (may be called from a mapless session)**
----------------------------------------------------------------------
.. automethod:: getAccountData
.. automethod:: getMapList
... and so on...
这些节标题在主框架中按预期呈现。
但是 - 侧边栏目录仅显示方法 - 它不显示类别/自定义标题。
我真的也希望这些自定义标题(“类别”)显示在侧边栏目录中。 有什么方法可以实现这个目标?
这个问题的一些评论暗示目录只是为了显示(嵌套)HTML列表而设计的 - 所以也许解决方案实际上在于将类别标题变成方法列表的一个级别? 如果可以的话,如何实现?
对 sartopo_python.rst 的更改:
这是修改后的 sartopo_python.rst 的同一部分:
:tocdepth: 3
sartopo\_python module
======================
.. see https://stackoverflow.com/a/48682589/3577105 for categorization technique
.. currentmodule:: sartopo_python
.. autoclass:: SartopoSession
.. omitting class name from automethod calls, when the section headers are unindented,
.. causes these failures, but, the headers need to be unindented for the TOC to recognize them:
.. WARNING: don't know which module to import for autodocumenting 'openMap' (try placing a "module" or "currentmodule" directive in the document, or giving an explicit module name)
**Session setup methods**
-------------------------
.. automethod:: SartopoSession.openMap
.. automethod:: SartopoSession._setupSession
.. automethod:: SartopoSession._sendUserdata
**Account data access methods (may be called from a mapless session)**
----------------------------------------------------------------------
.. automethod:: SartopoSession.getAccountData
.. automethod:: SartopoSession.getMapList
... and so on...
一个不受欢迎的副作用,但一个相当小的副作用可能还好,是渲染的页面在每个方法的开头都有模块名称。 它占用了更多的空间,但实际上可能有利于清晰。锦上添花的一点是能够折叠侧边栏目录的所有部分/类别(当前正在查看的部分/类别除外)。 但是 - 按原样前进可能就足够了。
这可能实际上不是狮身人面像或雪花石膏主题的预期行为,但是,没关系!