Doxygen では、次のコード構造があるとします。
foo/__init__.py
foo/bar.py
含むfoo/bar.py:
def meh():
"""@brief Some cool feature.
More details...
"""
print "Hello, world!"
およびfoo/__init__.py含む:
# Publicly expose "foo.bar.meh" as "foo.meh".
from foo.bar import meh
このスキームでは、構造的なコード レイアウトの理由から純粋mehに内部にあり、パブリック API のように表示される必要があります。foo.barfoo.meh
実際のこのスキームの例はos.path、多くの OS 固有の実装モジュールの 1 つからシンボルを公開する標準ライブラリからのものです (これはたまたまos.path.nt、たとえば利用可能です)。
このソース ツリーで Doxygen を実行すると、 as が取得mehされfoo.bar.meh、 as が取得できませんfoo.meh。
mehコマンドを使用して明示的に修飾しようとしまし@fnたが、奇妙な警告が表示され、関数が出力されません。@classfor classes を使用すると、2 つのMehクラスがあり、1 つには簡潔で詳細なドキュメントがあり、もう 1 つにはメソッドと他のメンバーがある状況が作成されます。おそらく、Doxygen は@classディレクティブを別のモジュール内のクラスのドキュメントとして解釈し、特別なコメント ブロックに続くクラスにドキュメントを関連付けません。
Doxygen を使用して内部モジュール シンボルをパブリック パッケージ シンボルとして公開するにはどうすればよいですか?
記録として、これは非常に大規模な C++ と Python のハイブリッド コード ベースであり、(少なくとも短期的には) reStrcuturedText や Sphinx に変換することに興味がない大量の Doxygen コメントが含まれています。