编程语言
首页 > 编程语言> > python – Sphinx apidoc – 不打印包和模块的完整路径

python – Sphinx apidoc – 不打印包和模块的完整路径

作者:互联网

我对sphinx很新,我正在尝试将它用作我项目的API参考.也许在那之后作为项目文档.

我使用这两个命令生成它

sphinx-apidoc -e -o doc/api tracer
sphinx-build -b dirhtml doc/ build/doc/dirhtml

它存在生成此目录的问题

- tracer package
    - tracer.lang package
        - tracer.lang.en module
    - tracer.packageManagers package
        - tracer.packageManagers.dnf module
        - tracer.packageManagers.dpkg module
        - tracer.packageManagers.portage module
        - ...
    - tracer.resources package
        - tracer.resources.ProcessesList module
        - tracer.resources.applications module
        - tracer.resources.args_parser module
        - ...

很不清楚列出不必要的冗余信息的原因.这样会好得多:

- tracer package
    - lang package
        - en module
    - packageManagers package
        - dnf module
        - dpkg module
        - portage module
        - ...
    - resources package
        - ProcessesList module
        - applications module
        - args_parser module
        - ...

或者甚至更好,没有包装或模块标签.

无论如何,它在任何地方都看起来不太好.例如

class tracer.packageManagers.portage.Portage
    Bases: tracer.packageManagers.ipackageManager.IPackageManager

会好得多

class Portage
    Bases: IPackageManager

我知道全名可能对大型项目有好处,模块名称可以有相同的名称,但我不喜欢它在我的小项目上.我能以某种方式告诉apidoc生成短名称吗?

你能帮我么?

非常感谢你,
FrostyX

解决方法:

就目录而言,在所有* .rst文件的源文件夹中进行搜索/替换(在运行sphinx-apidoc之后)最终对我有用.

搜索:

^(?:[a-zA-Z0-9]*[.])*([a-zA-Z0-9]+) (package|module)

更换:

\1 \2

…这缩短了标题,这是toctree中显示的内容.唯一的结果是该模块页面上的标题也将是短名称,但这并没有打扰我,因为导航和目​​录仍然清楚地表明父包是什么.

根据类/函数名称,mzjin的答案

set add_module_names = False in conf.py

应该做的伎俩.

标签:python,python-sphinx
来源: https://codeday.me/bug/20191005/1855565.html