19

カスタマイズされたテキストで外部ハイパーリンクを作成する方法を知っています。

`My cool link <http://www.asdf.com>`_

しかし、内部参照にリンクしたいのです。

.. _foo:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.

だから私は次のようなことをしたい

`My cool internal link <foo>`_

しかし、これはうまくいきません。

4

5 に答える 5

15

解決:

`My cool internal link <foo_>`_
于 2016-04-11T04:16:18.717 に答える
9

テキストには 2 つのアンダースコアを使用し、リンク ターゲットには 1 つのアンダースコアを使用します。例:

`My cool internal link <foo_>`__

... somewhere lower ...

.. _foo:

This staff is referenced by "My cool internal link"

アンダースコアを 2 つではなく 1 つ使用すると、rst2pdf がエラーをスローします。

于 2016-11-11T19:51:40.193 に答える
2

SphinxでreStructuredText を使用する場合は、ドキュメント内の他の場所をroleで相互参照してくださいref

:ref:`link text <link-target>`

ドキュメント、セクション、図などの場合と同様に、参照されるオブジェクトがタイトルまたはキャプションを定義する場合、カスタムリンク テキストはオプションです。ターゲットのタイトルがリンク テキストとして使用されますが、山括弧は省略されます。:ref:`link-target` . 段落や画像を参照する場合、タイトルやキャプションが関連付けられていないため、リンク テキストは必須です。

リンク ターゲットは、ドキュメントのどこかで定義する必要があります。場合によっては、他のドキュメント (.rstファイルなど) で定義する必要があります。セクションの場合、拡張機能のAutosectionlabelがこれを自動的に行い、セクションのタイトルがターゲットになり、リンク テキストにもなります。それ以外の場合はすべて、内部ハイパーリンク ターゲットを次のように手動で宣言する必要があります。

.. _paragraph-to-be-linked-to:

This paragraph will be referenced from elsewhere in the documentation
with :ref:`that paragraph <paragraph-to-be-linked-to>`.

ターゲット定義の先頭のアンダースコアに注意してください。これは、リンク ターゲットに向かって、ここでは内側を指している右向きの矢印と考えることができます。インラインの内部ターゲットを使用して、(長い) 段落内の特定の位置にリンクすることもできます。

We want to point to _`this position` inside the paragraph
with :ref:`that paragraph <this position>` from elsewhere.

DocutilsだけでreStructuredText を使用する場合ref、Sphinx によって追加された構文拡張であるため、ロールは使用できません。代わりに、ハイパーリンクを作成するには次の構文が必要です。

`link text <link-target_>`_

2 つの末尾のアンダースコアに注意してください。1 つはリンク ターゲットの後に、もう 1 つは完全なハイパーリンクの後にあります。ここでは、想像上の矢印が外側を指しています。

Docutils はスタンドアロン ファイルのみを処理します。個々の reStructuredText ソース ファイルを解析するためのバックエンドとして Sphinx によって使用されます。したがって、Sphinx のドキュメントでは、後者の構文は同じドキュメント内の内部リンクに対してのみ機能しますが、ドキュメント間では機能しません。つまり、ある.rstファイルで定義された別のファイルのターゲットを参照するハイパーリンクです。

refロールの代わりに、Sphinx が提供するロールの方が便利any場合があります。さらに、 Autodocで文書化されたソース コード オブジェクトなど、拡張機能によって自動的に作成されたリンク ターゲットも検索します。でデフォルトのロールとして宣言すると、conf.py内部ハイパーリンクを作成したり、作成したりdefault_role = 'any'することができます。末尾のアンダースコアがないことを除いて、前者は Docutils で認識される単一ドキュメントの reStructuredText の構文によく似ていますが、Sphinx ではクロスドキュメント方式で処理されます。`link text <link-target>``link-target`

于 2021-12-14T20:46:32.493 に答える