我对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
- ...
或者甚至可能更好,但最后没有package
或module
标签。
无论如何,它在任何地方看起来都不是很好。例如
class tracer.packageManagers.portage.Portage
Bases: tracer.packageManagers.ipackageManager.IPackageManager
会比
好得多class Portage
Bases: IPackageManager
我知道全名可能对大型项目有好处,模块名称可以有相同的名称,但我不喜欢它在我的小项目上。我能以某种方式告诉apidoc生成短名称吗?
你能帮帮我吗?
非常感谢, FrostyX
答案 0 :(得分:9)
就目录而言,在所有* .rst文件的源文件夹中进行搜索/替换(在运行sphinx-apidoc之后)最终对我有用。
搜索:
^(?:[a-zA-Z0-9]*[.])*([a-zA-Z0-9]+) (package|module)
取代:
\1 \2
...这缩短了标题,这是toctree中显示的内容。唯一的结果是该模块页面上的标题也将是短名称,但这并不会让我感到困扰,因为导航和目录仍然清楚地显示了父包的内容。< / p>
根据班级/职能名称,mzjin的答案
在conf.py
中设置add_module_names = False
应该这样做。