web-dev-qa-db-ja.com

SphinxとDoxygenの主な違いは何ですか?

コンピュータービジョン(主にc ++で書かれた)の分野でのプロジェクト、モジュール、およびライブラリのコレクションのドキュメントを準備したい。このため、私はOpenCVのドキュメントを調べました。ご存知かもしれませんが、OpenCV2.4.xのドキュメントは Sphinx そしてそれは私が求めていた正確な解決策でした。 Sphinxの素晴らしい機能は次のとおりです。

  1. 意味論的な観点でのモジュールの階層構造。たとえば、カルマンフィルターは、モーション分析およびオブジェクトトラッキングモジュールの子です
  2. imagesと数学formulasも追加できます
  3. かなり良い埋め込み検索エンジン

しかし、私はOpenCV3.0のc ++バージョンが Doxygen に基づいて文書化されていることに気付き、なぜかわかりません! Sphinxほど面白くないからです。 Doxygenがコードをコンパイルしてコメントを抽出できることは知っています。これは便利な機能です。 breatheなどのライブラリがあり、Doxygenスフィンクス

今私の質問は:

  1. SphinxDoxygenの代替案はありますか、それとも一緒に使用できますか?
  2. DoxygenSphinxの前述の機能を持っていますか?
  3. どのドキュメントエンジン(SphinxDoxygenまたは他のエンジン)が私の問題に適していますか?
20
Ali Mirzaei

この回答は、質問のポイント2に対応しています。

はい、doxygenは部分的にそれらの機能を備えています。

  • math formulas を使用できます。これは、ローカルのLatexインストール、またはJavaScriptレンダリングライブラリであるMathJaxを使用してレンダリングできます。ラテックスの場合と同様に、これらはテキストに「埋め込む」か、テキストフローの個別のユニットとして使用できます。
  • 検索エンジン も含まれます。
  • 簡単に 画像を含める できます。

たとえば、次の2行は、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は、コメントブロックに直接含めることができる多くの 通常のhtmlコマンド もサポートしています。

私はOpencvマニュアルを作成する以外にSphinxの経験はありませんが、Doxygen(私が日常的に使用しています)について追加できることは、それが本当に柔軟であることですが、これが常に最良の選択であるとは限りません。ページが乱雑になる可能性があり、コメントの追加コードが不適切に設計されている場合、邪魔になる可能性があります。

完全を期すために、(もちろんDoxygen Webサイト以外に)doxygenができることの最も優れたショーケースの1つは Eigenライブラリ です。見てください。

9
kebs