9

Sphinxを使用していくつかのドキュメントを生成します。reStructuredTextドキュメントがあり、そこに画像を入れたいのですが。ユーザーが画像をクリックした後、この画像がフルサイズで表示されるように、画像はクリック可能である必要があります。私は次のようにimageディレクティブとそのターゲットオプションを使用します:

.. image:: /images/some_image.png
   :alt: Image descripion
   :align: center
   :target: `big_some_image`_

.. _big_some_image: /images/some_image.png

問題は、レンダリングされたページで次のようになることです。

<a href="/images/some_image.png"><img src="../../../_images/some_image.png"></a>

したがってsrc、imageディレクティブからは正しいがhref、ハイパーリンクからは正しくない属性があります。

質問:

  • imageディレクティブが行う方法でリンクを生成する方法はありますか?私はドキュメントに関連することを意味します。

  • 「サムネイル->クリック->大きな画像」の動作をする他の(組み込みの)方法はありますか?

4

4 に答える 4

11

scale オプションを使用するだけです。

.. image:: large_image.png
    :scale: 20%

拡大縮小された画像をクリックすると、完全な画像が独自のウィンドウに読み込まれます。したがって、これによってページ上の画像サイズが大きくなることはありませんが、いずれにせよ面倒です。

于 2013-02-21T00:56:24.407 に答える
3

Sphinx 内からディレクティブを使用するとimage、Sphinx は画像ファイルを見つけてプロジェクト (_imagesディレクトリなど) にコピーする特別な処理を行い、HTML をレンダリングしてその場所を指します。

ただし、このtargetオプションは URL をパラメーターとして受け取るだけです。Sphinx プロジェクトや、画像がどのように配置されているかについては何も知らず、推測も試みません。

同じファイルのより大きなバージョンを指すようにしたい場合は、いくつかの手動の手順 (ファイルを特定の場所にコピーするなど) を行うか、大きなファイルへの相対 URL を指定する必要があります。あなたの例にある絶対URL。

まったく別の方法を使用したい場合は、プロジェクトの HTML テンプレートをオーバーライドおよび変更して JavaScript を追加し、必要なクリックで拡大する画像効果を得ることもできます。

于 2012-10-25T18:43:06.887 に答える
1

現在、これを行う Sphinx 拡張機能があるようです。でインストールしpip、conf.py の拡張機能に追加して、次のfancyboxディレクティブを使用します。

.. fancybox:: images/image.png
于 2013-06-03T19:24:35.087 に答える