Sphinx和Doxygen的主要区别是什么?

时间:2015-07-22 19:03:25

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

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

  1. 语义角度的模块的层次结构。例如卡尔曼滤波器运动分析和对象跟踪模块的孩子
  2. 您可以添加图片以及数学公式
  3. 相当不错的嵌入式搜索引擎
  4. 但我意识到OpenCV3.0的c ++版本是基于Doxygen记录的,我不知道为什么!因为它没有Sphinx那么有趣。 我知道 Doxygen 可以编译你的代码并提取你的评论,这是一个有用的功能。我也知道有些库(比如呼吸)可以充当 Doxygen Sphinx 之间的桥梁。

    现在我的问题是:

    1. 彼此的Sphinx和Doxygen替代品还是可以和它们一起使用?
    2. Doxygen 是否具有 Sphinx 的上述功能?
    3. 您更喜欢哪个文档引擎( Sphinx Doxygen 或其他引擎)?

1 个答案:

答案 0 :(得分:8)

这个答案解决了你问题的第2点。

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

  • 您可以拥有math formulas,可以通过本地Latex安装或通过Javascript渲染库MathJax进行渲染。与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,您可以直接在评论栏中添加。{/ p>

除了构建Opencv手册之外,我没有使用Sphinx的经验,但是我可以添加的关于Doxygen(我日常使用的)是真的很灵活,但这并不意味着#&# 39; s永远是最好的选择。页面可能会变得混乱,如果评论额外的代码设计得很糟糕,它可能会妨碍你。

为了完整性,doxygen可以做的最好的展示(除了Doxygen网站当然除外)是Eigen library。看一看。