JavaとPythonのコードを部分的に含む共有リポジトリを使用しています。コードベースは主にPythonに基づいていますが、一部のライブラリはJavaで記述されています。
後でPython-Sphinxまたはプラグインで使用するためにJavaドキュメントを解析または前処理する可能性はありますか?
JavaとPythonのコードを部分的に含む共有リポジトリを使用しています。コードベースは主にPythonに基づいていますが、一部のライブラリはJavaで記述されています。
後でPython-Sphinxまたはプラグインで使用するためにJavaドキュメントを解析または前処理する可能性はありますか?
これをセットアップするためのすべての重要な詳細を見つけるのに時間がかかりました。
# Recommend working in virtual environments with latest pip:
mkdir docs; cd docs
python3 -m venv env
source ./env/bin/activate
pip install --upgrade pip
# Recommend installing from source:
pip install git+https://github.com/bronto/javasphinx.git
pypi バージョンではインポートが壊れているようで、これらの問題は最新のチェックアウトには存在していないようでした。
Sphinx のセットアップが既に完了していると仮定します。
重要: Java の「ドメイン」を sphinx に追加します。これはパッケージに埋め込まれており、一般的な拡張名前空間形式javasphinx
には従いません。.ext.
(これは私が何時間も見逃した詳細です):
# docs/sources/conf.py
extensions = ['javasphinx']
オプション:外部 javadoc リンクが必要な場合:
# docs/sources/conf.py
javadoc_url_map = {
'<namespace_here>' : ('<base_url_here>', 'javadoc'),
}
javasphinx
パッケージはシェル ツールを追加します。javasphinx-apidoc
現在の環境がアクティブな場合は、単に として呼び出すjavasphinx-apidoc
か、そのフル パスを使用できます: ./env/bin/javasphinx-apidoc
:
$ javasphinx-apidoc -o docs/source/ --title='<name_here>' ../path/to/java_dirtoscan
このツールは、次のものとほぼ同じ引数を取りますsphinx-apidoc
。
$ javasphinx-apidoc --help
Usage: javasphinx-apidoc [options] -o <output_path> <input_path> [exclude_paths, ...]
Options:
-h, --help show this help message and exit
-o DESTDIR, --output-dir=DESTDIR
Directory to place all output
-f, --force Overwrite all files
-c CACHE_DIR, --cache-dir=CACHE_DIR
Directory to stored cachable output
-u, --update Overwrite new and changed files
-T, --no-toc Don't create a table of contents file
-t TOC_TITLE, --title=TOC_TITLE
Title to use on table of contents
--no-member-headers Don't generate headers for class members
-s SUFFIX, --suffix=SUFFIX
file suffix (default: rst)
-I INCLUDES, --include=INCLUDES
Additional input paths to scan
-p PARSER_LIB, --parser=PARSER_LIB
Beautiful Soup---html parser library option.
-v, --verbose verbose output
javasphinx-apidoc
コマンドの出力ディレクトリには、packages.rst
生成された目次ファイルがあります。これを次のように index.html の目次に含めることができます。
#docs/sources/index.rst
Contents:
.. toctree::
:maxdepth: 2
packages
Python 環境がアクティブであるか、パスが変更されている場合:
$ cd docs
$ make html
or
$ PATH=$PATH:./env/bin/ make html
javadocコマンドを使用すると、独自のdocletクラスを作成して使用し、選択した形式でドキュメントを生成できます。出力は直接人間が読める形式である必要はありません...したがって、Sphinx互換形式での出力を妨げるものは何もありません。
しかし、この特定の仕事をする既存のドックレットは見つかりませんでした。
参照:
アップデート
javasphinx拡張機能がより良い代替手段かもしれません。これにより、Javaソースコードに埋め込まれたjavadocコメントからSphinxドキュメントを生成できます。
Sphinx には、JavaDoc を解析するための組み込みの方法が用意されていません。また、このタスク用のサード パーティの拡張機能については知りません。
おそらく、Sphinx の autodoc 拡張機能用に独自のドキュメンターを作成する必要があります。従うことができるさまざまなアプローチがあります。