Sphinx和Doxygen的主要区别是什么? [关闭]

问题描述 投票:18回答:1

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

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

但我意识到基于Doxygen记录了OpenCV3.0的c ++版本,我不知道为什么!因为它没有Sphinx那么有趣。我知道Doxygen可以编译你的代码并提取你的评论,这是一个有用的功能。我也知道有些库(如呼吸)可以作为Doxygen和Sphinx之间的桥梁。

现在我的问题是:

  1. 彼此的Sphinx和Doxygen替代品还是可以和它们一起使用?
  2. Doxygen是否具有Sphinx所提到的功能?
  3. 您更喜欢哪个文档引擎(Sphinx,Doxygen或其他引擎)?
c++ opencv documentation doxygen python-sphinx
1个回答
9
投票

这个答案解决了你问题的第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(我日常使用的)是它非常灵活,但这并不意味着它始终是最佳选择。页面可能会混乱,如果评论附加代码设计不当,它可能会阻碍你。

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

© www.soinside.com 2019 - 2024. All rights reserved.