2012-09-28 6 views
8

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

.. 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は、画像ディレクティブからですが、間違ってhrefハイパーリンクの属性

質問:

  • その画像ディレクティブはそれをしない方法でリンクを生成するためにどのような方法がありますか?私はその文書に関連しています。

  • "サムネイル - クリック - >大きな画像"の動作を持つ(組み込みの)方法はありますか?あなたはスフィンクスの中からimageディレクティブを使用

答えて

3

は、スフィンクスは、画像ファイルを見つけて(あなたの_imagesディレクトリなど)をプロジェクトにコピーするために、いくつかの特別な処理を行い、その後、その場所を指すようにHTMLをレンダリング。

しかし、targetオプションはパラメータとしてURLを受け取るだけです。あなたのSphinxプロジェクトやイメージの配置方法については何も知らず、推測しようとしません。

同じファイルのより大きいバージョンを指している場合は、手動で(特定の場所にファイルをコピーするなどの)多少の手順を実行するか、あなたの例にある絶対URLではなく、

完全に異なる方法を使いたい場合は、プロジェクトのHTMLテンプレートをオーバーライドして変更し、JavaScriptを追加して、クリックして大きな画像効果を得ることもできます。

+1

は本当に他に方法はありませんか?それは、箱からすぐにサポートされることが期待できる機能性の種類です。 – toniedzwiedz

7

は、単純にスケールオプションを使用します。

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

スケーリングされた画像がクリックされると、独自のウィンドウで完全なイメージがロードされます。だから、これはページ上の画像サイズを増加させませんが、それはとにかく面倒です。

+0

これは機能しますが、自動的に縮尺を合わせる*(スフィンクス1.3とRTDテーマで少なくとも)* – ideasman42

+0

ええ、これは画像を水平方向に押しつぶします。編集:このCSSはそれの周りに動作します: 'img { height:auto!important; } ' –

0

スフィンクスの拡張機能があり、これではかなりうまくいくように見えます。sphinxcontrib-fancybox 0.3.2。 、pipにインストールconf.pyであなたの拡張機能に追加して、fancyboxディレクティブを使用します。

.. fancybox:: images/image.png 
+0

ただ試しました。まだまだ荒れています。キャプションは残念なことに私のためのディールブレーカーであるフルサイズの画像でのみ表示されます。私はそれを反対にする必要があります。サムネイルにのみキャプションを表示します。 – fred

+0

現在はサムネイルサイズの幅/高さを設定しています。次に、画像をクリックすると、画像URLにブラウザが送信されます。 'scale'を使うのと同じです。代わりにブラウザに新しいウィンドウ/タブを開くようにすることができたら、私はそれで暮らすことができます。 – fred

0

相対リンクが動作するように見えます。 Mapserver docs setupの場合、画像がimagesディレクトリに置かれている場合、次のコードのような相対リンクがローカルビルドで動作します。ここで(「画像」ターゲットにリンクが必要である前にアンダースコア(「_」))フィギュアを使用した例です。

.. figure:: ../../images/carto-elements.png 
    :height: 400 
    :width: 600 
    :align: center 
    :target: ../../_images/symcon-overlay.png 
関連する問題