Mercurial & Sphinx

クロスリファレンス文法

«  クロスリファレンス文法   ::   Contents   ::   reST ディレクティブ編  »

クロスリファレンス文法

ロール

  • Python
  • C
  • C++
  • JavaScript
  • ReST

自由な場所へのクロスリファレンス

ref:

標準のreSTのラベルを使用して、ドキュメント内の自由な位置にクロスリファレンスを作成することもできます。このラベルがきちんと動作するためには、ドキュメント全体の中で重複したラベルを使用することはできません。ラベルはユニークである必要があります。ラベルを参照する方法は2つあります:

セクションのタイトルの直前にラベルを置くと、 :ref:`label-name` と書くことで参照できるようになります:

クロスリファレンスのセクション

これはセクションのテキストです。

これはセクションそのものを参照します。 クロスリファレンスのセクション

ref:ロールはセクションへのリンクを作成します。リンクのタイトルは “クロスリファレンスのセクション” になります。この機能はセクションと参照が異なるソースファイルにあるときに動作します。

自動ラベルは図に対しても動作します:

.. _my-figure:

.. figure:: whatever

図のキャプション

:ref:`my-figure` 参照を書くと、 “図のキャプション” というテキストを持つ、図への参照が生成されます。

table ディレクティブを使用して、キャプションを明示しているテーブルに対しても、同様の働きをします。

セクションタイトルの前にないラベルに対しても参照することはできますが、タイトルを明示する必要があります。この場合には :ref:`リンクラベル <ラベル名>` という文法を使用します。

これはファイルをまたいで動作するため、セクションの表題が変更されると、 ref を使用する、標準のreStructuredTextのセクション( `セクションタイトル`_ )へのリンクに対して通知されます。これはクロスリファレンスをサポートするすべてのビルダーについて言えます。

ドキュメントのクロスリファレンス

ドキュメントに対して直接リンクを張る方法もあります。

doc:

絶対/相対のどちらかの形式でドキュメント名を指定することで、特定のドキュメントに対してリンクを張ることができます。例えば、 :doc:`parrot` という参照が sketches/index というファイルの中にあったとすると、 skethes/parrot に対するリンクとなります。もし参照が :doc:`/people` もしくは :doc:`../people` という形式で書かれている場合には people に対するリンクが作成されます。

:doc:`Monty Python members </people>` という形式で、明示的にリンクテキストを指定することができますが、もし明示的なリンクテキストが与えられなかった場合には指定されたドキュメントのタイトルがリンクテキストとなります。

ダウンロード可能なファイルへの参照

download:

このロールは表示可能なreST形式ではなく、ソースツリーに存在するその他の形式のファイルへのリンクを張って、ファイルをダウンロードできるようにするときに使用します。

このロールを使用すると、HTML出力時に、参照されたファイルはビルド時に自動的に出力ディレクトリにコピーされることになります。すべてのダウンロード可能なファイルは出力ディレクトリ中の _downloads サブディレクトリ出力されます。重複した名前のファイルがあっても扱うことができます。

サンプル:

:download:`このサンプルスクリプト <../example.py>` を参照してください

与えられたファイル名は通常、そのロールが書かれているソースファイルからの相対ディレクトリで指定されますが、もし絶対パス(/ で始まる)の場合には、トップのソースディレクトリからの相対パスとして見られます。

example.py ファイルは出力ディレクトリにコピーされ、適切なリンクが生成されます。

他の要素へのクロスリファレンス

以下のロールはクロスリファレンスを作成しますが、特定のオブジェクトを参照しません。

envvar:環境変数です。エントリーのインデックスが作成されます。もし envvar ディレクティブがあれば、それへのリンクが作成されます。
token:文法のトークンの名前です。 productionlist ディレクティブ内の定義との間でリンクが作成されます。
keyword:Pythonのキーワード名です。もし存在していれば、この名前を持つ参照ラベルとの間にリンクが作成されます。
option:実行ファイルのコマンドラインオプションです。前に付くハイフンも含める必要があります。 cmdoption ディレクティブで定義されていれば、リンクを作成します。

以下のロールは用語集との間にクロスリファレンスを作成します:

term:

用語集の用語への参照。用語集は glossary ディレクティブを使用して定義します。用語集と term マークアップは同じファイルにある必要はありません。例えばPythonのドキュメントは一つの用語集の glossary.rst というファイルの中にすべての用語の定義が書かれています。

もしも、用語集の中で説明されていない用語がある場合には、ビルド時に警告が出力されます。

上記以外の意味のマークアップ

以下のロールは、テキストのスタイルを変更する意外には特別なことはしません。

abbr:

言葉の短縮形を書くのに使用します。ロールの中身として、括弧付き表現が含まれていた場合には特別扱いされます。HTMLではツールチップとして使用され、LaTeXでは一度だけ出力されます。

例: LIFO.

New in version 0.6.

command:

rm のような、OSレベルのコマンドの名前に使用します。

dfn:

テキスト中の用語の定義を書くのに使用します。インデックスエントリーは作成されません。

file:

ファイルやディレクトリの名前に使用します。ロールの中身の中には”変数”を表す波括弧を含めることができます。例:

... は /usr/lib/python2.x/site-packages にインストールされます ...

ドキュメントのビルドの中で、 x Pythonのマイナーバージョンを表す文字に置き換えられて表示されます。

guilabel:

インタラクティブなユーザインタフェースの一部のラベルとして表示される文字に対しては guilabel を使用します。これは、 curses やその他のコンソール用ライブラリを使用したテキストベースのインタフェースにも使用します。ボタンやウィンドウのタイトル、フィールド名、メニュー、やメニューの項目名、リスト中の選択された値など、インタフェース上に表示されるラベルには、このロールを使用すべきです。

Changed in version 1.0.

kbd:

キーボード操作のキーに使用します。 キー操作をどのように表現するかはプラットフォームや、アプリケーション上の慣習の影響を受けます。もし、慣習に関しての制約がない場合には、修飾キー(Shiftなど)の名前は、省略せずにきちんと書くと、新規ユーザと、英語がネイティブでないユーザから見たアクセシビリティは向上します。例えば、xemacs キー操作は C-x C-f という表現になるでしょう。しかし、特定のアプリケーションやプラットフォームに限定する必要がなければ同じ操作は Control-x Control-f と書くべきです。

mailheader:

RFC 822の形式のメールヘッダの名前に使用します。これでマークアップされたヘッダは電子メールのメッセージの中で必ず使用されている必要はありませんが、参照するのに他のヘッダと同じ形式を使用することが可能です。このヘッダはさまざまなMIMEの使用で定義されたヘッダに対しても使用することができます。ヘッダ名は実際に電子メール内で使用されるのと同じ形式(キャメルケース)で書かれるべきです。例えば、 Content-Type という形式になります。

makevar:

make の変数名です。

manpage:

セクションの内容を含むUnixのマニュアルページへの参照です。 例: ls(1)

menuselection:

メニュー選択は menuselection ロールを使用すべきです。これはメニュー操作の手順をマークアップするのに使用します。メニューにはメニュー選択、サブメニュー選択、特定の操作での選択や、さらに細かいサブ操作などを含みます。それぞれの選択要素の名前は --> を使用して分割すべきです。

例えば、”スタート > プログラム”という順番でメニューを選択する動作は以下のように記述します:

スタート ‣ プログラム

もし、選択したメニューにはオペレーティングシステム固有のコマンドの指示などが含まれていた場合には、これは省略すべきです。例えば、ダイアログを開くコマンドなどです。このようなコマンドの指示は選択名からは省きます。

menuselection は guilabel と同じく、アンパサンドを利用したアクセラレータの表示に対応しています。

mimetype:

MIMEタイプの名前、もしくはの一部MIMEタイプ(メジャー、マイナー部分、もしくは単独)を表します。

newsgroup:

USENETのニュースグループ名です。

program:

実行プログラムの名前です。これはプラットフォームによって名前が変化することもあります。特にWindowsのプログラムのための .exe やそれ以外の拡張子はは省略すべきです。

regexp:

正規表現です。引用符は含めることはできません。

samp:

リテラルのテキストの一部です。マークアップの内容の中には、 file と同様に波括弧を使った”変数”を書くことができます。たとえば、 print 1+variable というテキストがあると、 variable の部分が強調されます。

もし”変数部分”が不要であれば、標準の コード という形式を代わりに使用してください。

インデックスのエントリーを生成するための、 index ロールもあります。

下記のロールは外部へのリンクを生成します。

pep:Python拡張提案書(PEP)への参照です。これは適切なインデックスのエントリーを作成します。”PEP number“という形式のテキストが作成されます。HTML出力ではこのテキストは特定のPEPのオンラインのコピーへのハイパーリンクとなります。
rfc:インターネットのRFCへの参照です。これは適切なインデックスのエントリーを作成します。”RFC number“という形式のテキストが作成されます。HTML出力ではこのテキストは特定のRFCのオンラインのコピーへのハイパーリンクとなります。

このような目的を達成しようとしても、標準のreSTマークアップだけではハイパーリンクを取り込む特別なロールは存在しません。


«  クロスリファレンス文法   ::   Contents   ::   reST ディレクティブ編  »