パッケージ間のSphinxドキュメントリンクを設定するためのドキュメントに従って、
intersphinx_mapping = {'python': ('http://docs.python.org/2', None),
'numpy': ('http://docs.scipy.org/doc/numpy/', None),
'scipy': ('http://docs.scipy.org/doc/scipy/reference/', None),
'matplotlib': ('http://matplotlib.sourceforge.net/', None)}
にconf.py
リンクを張っていますが、Python自体以外のプロジェクトへのリンクは機能しないようです。例えば
:term:`svg graphics <matplotlib:svg>`
期待されるアンカーは追加されずにインデックス ページに移動するだけで、用語集を見つけることも、パッケージでサポートされているまたはを判断する方法を理解すること#term-svg
もできません。scipy
:ref:
:term:
、、:ref:
および:term:
で およびのターゲットを指定する方法についての説明はどこにありますか?numpy
scipy
matplotlib
ところで、Sphinx自体にリンクするにはどうすればいいでしょうか?
intersphinx_mapping['sphinx'] = ('http://sphinx-doc.org/', None)
そして
:ref:`Intersphinx <intersphinx>`
動作しません。
ベストアンサー1
、、
:ref:
および:term:
で およびのターゲットを指定する方法についての説明はどこにありますか?numpy
scipy
matplotlib
私は要旨いくつかのintersphinx
マッピングで、numpy
、scipy
、のすべてが含まれるようにmatplotlib
なりました。これらのエントリは、intersphinx_mapping
、あなたの 内conf.py
。このリストに追加すべきエントリについての提案があれば、Gist のコメントにリクエストを投稿してください。
これらのパッケージはすべて、fgoudraの回答ぜひ使ってみてくださいsphobjinv
ファイル内の各ライブラリを検索しますobjects.inv
。(完全開示:私はの著者ですsphobjinv
。)suggest
CLI インターフェースのモードは、インタースフィンクス相互参照を作成するために必要な情報を提供するために特別に設計されています。
numpy
複雑です。場合によっては、完全修飾名が必要になることがあります。例:
:func:`numpy.cross`
その他の場合 (たとえば、C 関数の場合) は、関数の基本名を参照するだけで済みますが、ドメインを明示的に示す必要があります。例:
:c:func:`PyArray_InnerProduct`
また、カスタムnp
ドメインを参照する必要がある場合もあります。例:
:np:func:`numpy.ma.append`
を参照せずに正しい構文が何であるかを知る方法は実際にはありませんobjects.inv
。
scipy
は とほぼ同じくらい不可解ですnumpy
。さまざまなサブパッケージに多数のカスタム ドメインが導入されると、状況はさらに複雑になりますscipy
。例:
:scipy-optimize:func:`scipy.integrate.newton_cotes`
のためにmatplotlib
、参照では常に (かなり冗長な) 完全に指定されたオブジェクト名を指定する必要があるようです。例:
:meth:`matplotlib.axes.Axes.plot`
ただし、すべてのmatplotlib
コード オブジェクトはデフォルトのpy
ドメインに存在するように見えるため、多少は簡素化されます。
これらのいずれについても、リンクを適切に構築できない場合は、まず汎用:obj:
ロールを使用します。例:
:obj:`matplotlib.axes.Axes.plot`
intersphinx
これにより、特定のオブジェクトが定義されたロールに関係なくリンクが構築されますが、関連するデフォルト以外のドメインを正しく指定する必要があると思います。:obj:
ロールで参照が正しく機能しない場合は、オブジェクト名またはドメインのどこかにエラーがあります。両方の場所でタイプミスがないか確認してください。