【问题标题】:What are the main differences of Sphinx and Doxygen? [closed]Sphinx 和 Doxygen 的主要区别是什么? [关闭]
【发布时间】:2015-10-12 20:13:58
【问题描述】:

我想为计算机视觉领域的一系列项目、模块和库(主要用 C++ 编写)准备一份文档。为此,我查看了 OpenCV 文档,您可能知道 OpenCV 2.4.x 文档基于 Sphinx,这正是我正在寻找的解决方案为了。 Sphinx 的优点是:

  1. 从语义的角度来看,模块的层次结构。例如,卡尔曼滤波器运动分析和对象跟踪模块的子模块
  2. 您可以添加图片以及数学公式
  3. 相当不错的嵌入式搜索引擎

但我意识到 OpenCV3.0 的 c++ 版本是基于Doxygen 记录的,我不知道为什么!因为它不像 Sphinx 那样有趣。 我知道 Doxygen 可以编译您的代码并提取您的 cmets,这是一个有用的功能。我也知道有一些库(比如 breathe)可以充当 DoxygenSphinx 之间的桥梁。

现在我的问题是:

  1. SphinxDoxygen 是相互替代还是可以一起使用?
  2. Doxygen 是否具有 Sphinx 的上述特征?
  3. 您更喜欢哪种文档引擎(SphinxDoxygen 或其他引擎)来解决我的问题?

【问题讨论】:

  • Sphinx 说它是一个 Python 文档工具。我知道 Doxygen 可以解析 C++ 语言。
  • 这正是我的问题。但我想知道 OpenCV 的 c++ 版本是如何使用 Sphinx 记录的!
  • 这是一个很好但可能有点宽泛的问题。它促使我问stackoverflow.com/questions/31594254/…。至于如何用 sphinx 记录 OpenCV2,它使用 sphinx c++ 域,并且在 cmake 构建方案中相对简单。

标签: c++ opencv python-sphinx doxygen documentation-generation


【解决方案1】:

此答案解决了您问题的第 2 点。

是的,doxygen 部分具有这些功能。

  • 您可以拥有math formulas,它可以通过本地 Latex 安装或 MathJax(一个 Javascript 渲染库)进行渲染。与 Latex 一样,这些可以“嵌入”到文本中,也可以作为文本流中的一个单独单元。
  • 它还包括一个search engine
  • 您可以轻松include images

例如,下面的两行将在 html 和 latex 生成的输出中添加相同的图像:

  \image latex my_image.png "My image" width=10cm
  \image html my_image.png "My image" width=10cm

我想我记得在 html 中,标题和宽度被忽略了?但是 Doxygen 真的很灵活,所以如果上面的命令还不够,你可以将它们添加为 html 代码:

<img src="my_image.png"  ...additional html attributes...>

Doxygen 还支持很多 regular html commands,您可以直接将其包含在您的评论块中。

除了构建 Opencv 手册外,我没有使用 Sphinx 的经验,但我可以补充的关于 Doxygen(我每天使用的)是它非常灵活,但这并不意味着它总是最好的选择。页面可能会变得杂乱无章,如果注释附加代码设计不当,可能会妨碍您。

为了完整起见,Eigen library 是 doxygen 功能的最佳展示之一(当然,除了 Doxygen 网站)。看看吧。

【讨论】:

    猜你喜欢
    • 2018-10-21
    • 1970-01-01
    • 2011-06-16
    • 2010-10-17
    • 2013-06-11
    • 2014-06-16
    • 1970-01-01
    • 2012-04-23
    相关资源
    最近更新 更多