跳转到主要内容

使用Doxygen、Sphinx和Breathe自动生成C++库API文档的C++库API文档生成器。

项目描述

Documentation Status Latest Version Code Coverage Report License BSD-3 Clause

使用Doxygen、Sphinx和Breathe自动生成C++库API文档。Exhale在reStructuredText文档中恢复Doxygen的类、文件和页面层次结构,以便在Sphinx文档项目中使用这些层次结构。

这是否适合我?

Exhale可能 不是 你要找的工具!它被设计得尽可能直观和灵活,但确实需要更多的配置才能启动。

为什么使用它?

如果你想要有美丽的Sphinx生成的网站,同时也看到了Doxygen提供的类、文件和页面层次结构的价值,你会使用Exhale。从为你运行Doxygen,到每次组织你的完整API,你不需要担心你的文档与代码不同步——它会在每次运行时动态重新生成。

为什么不使用它?

可能比您需要的要复杂。查看随您的安装一同提供的breathe-apidoc工具。它与Sphinx API文档工具非常相似,这可能是您要显示文档所需的所有内容。

如果您使用的是足够小的框架,您可能只需要使用breathe.. autodoxygenindex::指令。它非常有效!

主要区别

类、文件和页面层次结构仅在Sphinx通过Exhale可用😊

根据您项目的大小和复杂性,breathe-apidocautodoxygenindex可能更适合。

重要注意事项

Exhale已知在小到中等规模的项目上表现良好。在Sphinx中支持大型项目是一个更加复杂的过程,这可能在时间上得到解决也可能不会得到解决——这不仅仅与Exhale有关,但Exhale(生成大量的.rst文件)的性质肯定不会有所帮助。

有关如何开始的更多信息,请参阅完整文档

看看它在行动中的样子

ExhaleCompanion仓库有三个构建,展示了创建树视图的不同选项,以及特定HTML主题选择的细节。

HTML主题选择

创建树视图

ExhaleCompanion文档

RTD主题

rtd-docs

Bootstrap主题

bootstrap-docs

Alabaster

alabaster-docs

安装

Exhale是一个Sphinx扩展,它依赖于Breathe来访问Doxygen reStructuredText指令,以及BeautifulSouplxml来解析生成的Doxygen XML文档。Exhale在PyPI上托管,这意味着您可以通过常规机制安装它,例如

$ python -m pip install exhale

这将安装Exhale以及所有其依赖项。

Exhale与Python、Sphinx和Breathe的版本兼容性

Exhale版本

Python版本

Sphinx版本

Breathe版本

0.3.7

>=3.8

>=4.3.2

>=4.33.1

0.3.2 – 0.3.6

>=3.7

>=3.0,<5

>=4.32.0

0.3.0

>=3.6

>=3.0,<5

>=4.32.0

0.2.1 – 0.2.4

2.7, 3.3+

>=1.6.1

“任何”

<=0.2.0

2.7, 3.3+

>=1.0

“任何”

对于您项目的文档需求,采用exhale@0.3.0意味着您只需直接在您的docs/requirements.txt或类似表达中指定即可

exhale>=0.3.0

exhale@0.3.0版本使用与breathe@4.32.0相同的依赖。如果您需要Python 3.5支持,将文档需求固定为

sphinx>=2.0
breathe>=4.13.0
exhale<0.3.0

对于Python 2.7,您应将文档需求固定为

sphinx==1.8.5
breathe==4.12.0
exhale<0.3.0

顺序很重要,即sphinxbreatheexhale之前出现/安装。Exhale 0.2.*版本支持Python 2.7,但用户需要了解Python、Sphinx和Breathe版本之间的依赖关系。

致谢

没有这些已经非常出色的工具,本项目将无法存在:Doxygen、Sphinx、Breathe以及许多其他工具。特别是,为了使树视图层次结构成功,我提供了两个出色的库的副本,我对此不做任何声明。这些副本与每个项目的许可协议一起提供。

  1. 对于非Bootstrap,我使用了Kate Morley的出色而轻量级的可折叠列表,包括该帖子上的示例CSS/图像。她为这些文件以及她网站上的其余部分提供了慷慨的CC0 1.0许可

    在我尝试过的每一个HTML主题中,除了使用bootstrap的主题之外,这个库都工作得非常可靠和一致。它与Sphinx RTD主题也非常匹配!

  2. 对于bootstrap,我使用了Jon Miles的综合性bootstrap-treeview库。Jon Miles使用Apache v2许可协议托管这个库。

    这个库的设计非常周到,提供了令人印象深刻的定制功能。目前,Exhale还没有公开任何可用的定制选项。如果您想看到特定的定制选项,请加入这里的讨论

这两个库及其许可协议的副本可以在源代码的数据文件夹中找到。

许可

本项目使用BSD 3条款许可协议,希望它能被大多数项目所采用。如果您需要其他许可协议,请提出问题,我将考虑双许可协议。

完整的许可协议在此处可用

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

exhale-0.3.7.tar.gz (104.6 kB 查看哈希值)

上传时间 源代码

构建分发

exhale-0.3.7-py3-none-any.whl (108.1 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面