はやわかり reStructuredText

著者: Tibs (tibs@tibsnjoan.co.uk)、 David Goodger (goodger@python.org)
英語原版: Quick reStructuredText
バージョン: 2004/10/05 01:22:01
著作権: This document has been placed in the public domain.
翻訳者: 瀬戸山 春輝 haruki@planewave.org
翻訳著作権: クリエイティブ・コモンズ 帰属ライセンス

本マークアップ記法の完全な詳細は reStructuredText のページに示されています。このテキストは、覚書としての性格の文書です。

"(詳細)" というリンクを辿ると reStructuredText 仕様書を参照できます。 ただし、相対リンクとなっていますので、リンク切れの場合は、 原版の "Quick reStructuredText" から参照してください。

目次

インライン マークアップ

(詳細)

インラインマークアップを行うことで、文書中の語句に文字スタイル (斜体や太字など)を設定したり、リンクなどの機能を加えたりすることが できます。

プレーンテキスト 変換結果の例 備考
*強調* 強調 通常、斜体で表示されます
**より強い強調** より強い強調 通常、太字で表示されます
`解釈済みテキスト` (右欄参照) 解釈済みテキストの意味および表示は、ドメインやアプリケーションに 依ります。索引の見出し語や、プログラム中の識別子などとして使われます。
``インライン リテラル`` インライン リテラル 通常、等幅テキストで表示されます。空白文字はそのまま表示されます。 改行は表示されません。
単純参照_ 単純参照 リンクにします。 くわしくはリンクの項を見よ。
`フレーズ参照`_ フレーズ参照 空白文字や句読点を含むフレーズをリンクにするには バッククォートで囲む必要があります。 くわしくはリンクの項を見よ。
無名参照__ 無名参照 単純参照およびフレーズ参照のどちらでも、 アンダースコアを2つにすると、参照テキストをターゲット記述の 際に再度書く必要がない無名の参照になります。 くわしくはリンクの項を見よ。
_`インライン内部ターゲット` インライン内部ターゲット 文書中の相互参照のターゲットになります。 くわしくはリンクの項を見よ。
|代入参照| (右欄参照) 代入の定義 に従って、結果が代入されます。テキスト、画像、リンクおよび それらの組み合わせにすることができます。
脚注参照 [1]_ 脚注参照 1 くわしくは脚注を見よ。
出典参照 [CIT2002]_ 出典参照 [CIT2002] くわしくは出典を見よ。
http://docutils.sf.net/ http://docutils.sf.net/ 単独形のリンク

アスタリスク (*) やバッククオート (`)、縦棒 (|)、アンダースコア (_)は インラインマークアップの指示記号として使われます。 アスタリスクおよびバッククオート、縦棒は、マークアップしたい語句を 前後で囲んで使用します。 このとき、指示記号の前後には空白文字もしくは他の指示記号を置く必要があります。 また、指示記号の内側直後には空白文字を置いてはいけません。 インラインの指示記号自体を通常の文字として使いたい場合は、 (バックスラッシュで)エスケープするか、 (バッククオート2つで)囲むかします。

くわしくは、インラインマークアップに際して(インラインマークアップの) 開始文字と終了文字が従うルールは reStructuredText 仕様書で 以下の通り定義されています。

  1. 開始文字は、テキストブロックの最初、もしくは 空白文字または ' " ( [ { < のいずれかの文字の 直後に置くことができます。
  2. 開始文字の直後には、空白文字以外の文字が続きます。
  3. 終了文字の直前には、空白文字を置くことができません。
  4. 終了文字は、テキストブロックの最後、もしくは 空白文字または ' " ( [ { < のいずれかの文字の 直前に置くことができます。
  5. 開始文字の直前が ' " ( [ { < のいずれかの場合は、 開始文字の直後に対応する文字 ' " ) ] } > を 置くことができません。
  6. 終了文字と開始文字の間には、一文字以上はさまれている 必要があります。
  7. エスケープ無しのバックスラッシュが 開始文字または終了文字の直前に置かれた場合、マークアップだと 認識されません。 ただし、インラインリテラルの終了文字の直前だけは例外です。

インラインマークアップは入れ子にすることができません。 (インラインリテラルの内部には、マークアップの指示記号を 置くことができますが、マークアップとしての処理は 当然行われません。)

バックスラッシュによるエスケープ

(詳細)

バックスラッシュ (\) を マークアップの指示記号の直前に置くと、それらの意味は無視され、 元の文字自体が得られます。 バックスラッシュ文字を得るには、バックスラッシュを繰り返しします("\\")。 以下に例を示します。

reStructuredText 中での記法 変換結果の例
*escape* ``with`` "\" escape with ""
\*escape* \``with`` "\\" *escape* ``with`` "\"

Python の文字列を reStructuredText に渡すためには、 バックスラッシュ文字をエスケープする必要があるでしょう。 raw strings を使うのがもっとも簡単な方法です。

Python 文字列 変換結果の例
r"""\*escape* \`with` "\\"""" *escape* `with` "\"
 """\\*escape* \\`with` "\\\\"""" *escape* `with` "\"
 """\*escape* \`with` "\\"""" escape with ""

章立ての構造

(詳細)

プレーンテキスト 変換結果の例
========
タイトル
========
サブタイトル
-------------
タイトル類は非英数の7ビットアスキー文字で
下線(または上下線)を引きます。
次の文字の使用が推奨されます。
``= - ` : ' " ~ ^ _ * + # < >`` 。
上下線は、タイトルのテキストと同じか長くします。

最上部に書かれた、同し線種での繰り返しの無いタイトル(
(およびサブタイトル)は、文書全体のタイトル
(およびサブタイトル)として取り扱われます。

タイトル

サブタイトル

タイトル類は非英数の7ビットアスキー文字で 下線(または上下線)を引きます。 次の文字の使用が推奨されます。 = - ` : ' " ~ ^ _ * + # < > 。 上下線は、タイトルのテキストと同じか長くします。

最上部に書かれた、同し線種での繰り返しの無い タイトル(およびサブタイトル)は、 文書全体のタイトル(およびサブタイトル)として 取り扱われます。

段落

(詳細)

プレーンテキスト 変換結果の例

ここが段落です。

段落は、左の端を
そろえて記述します。通常、
空行で区切られます。

ここが段落です。

段落は、左の端を そろえて記述します。通常、 空行で区切られます。

記号つきリスト

(詳細)

プレーンテキスト 変換結果の例
記号つきリスト

- アイテム 1 です
- アイテム 2 です

- リスト記号は"-" および "*", "+" が使用できます。
  複数行にわたる場合は、記号と空白文字の後に、
  左端をそろえて記述します。

最初のアイテムの前および最後のアイテムの後には空行が
必要です。アイテム間の空行は任意です。

記号つきリスト
  • アイテム 1 です
  • アイテム 2 です
  • リスト記号は"-" および "*", "+" が使用できます。 複数行にわたる場合は、記号と空白文字の後に、 左端をそろえて記述します。

最初のアイテムの前および最後のアイテムの後には空行が 必要です。アイテム間の空行は任意です。

番号つきリスト

(詳細)

プレーンテキスト 変換結果の例
番号つきリスト

3. はじめのアイテム
4. 次のアイテム
5. 番号は、アラビア数字、単一の英字、もしくは
   ローマ数字が使用できます。
6. アイテムは、連続した数で番号付けするべきです。
   ただし、必ずしも1からはじめる必要はありません
   (フォーマッタがによっては任意の番号からの
   開始を適切に扱えないこともあります。)

番号つきリスト
  1. はじめのアイテム
  2. 次のアイテム
  3. 番号は、アラビア数字、単一の英字、もしくはローマ数字 が使用できます。
  4. アイテムは、連続した数で番号付けするべきです。ただし、 必ずしも1からはじめる必要はありません (フォーマッタがによっては任意の番号からの 開始を適切に扱えないこともあります。)

定義リスト

(詳細)

プレーンテキスト 変換結果の例
定義リスト

それは何?
  定義リストは、用語とその定義を示します。

どのようにして?
  「用語」は 1 行のテキストです。
  「定義」は、段落などのボディ要素で、
  複数の段落を記述することもできます。
  用語との間に空行を入れないで、右側に
  インデントさせます。
定義リスト
それは何?
定義リストは、用語とその定義を示します。
どのようにして?
「用語」は 1 行のテキストです。 「定義」は、段落などのボディ要素で、 複数の段落を記述することもできます。 用語との間に空行を入れないで、右側に インデントさせます。

フィールドリスト

(詳細)

プレーンテキスト 変換結果の例
:著者:
    Tony J. (Tibs) Ibbs,
    David Goodger

    (および多くの親切な方々)

:バージョン: 1.0 of 2001/08/08
:献呈: 我が父へ

著者: Tony J. (Tibs) Ibbs, David Goodger
(および多くの親切な方々)
バージョン: 1.0 of 2001/08/08
献呈:我が父へ.

フィールドリストは、拡張文法として、 ディレクティブに対するオプションや 後での処理を意図したデータベース系の記録に対して用いられます。 また、文章中では、通常の2列の表としても使われます。

オプションリスト

(詳細)

プレーンテキスト 変換結果の例

-a            command-line option "a"
-b file       options can have arguments
              and long descriptions
--long        options can be long also
--input=file  long options can also have
              arguments
/V            DOS/VMS-style options too

-a command-line option "a"
-b file options can have arguments and long descriptions
--long options can be long also
--input=file long options can also have arguments
/V DOS/VMS-style options too

オプションとその説明の間には、2つ以上の空白文字を置きます。

整形済みブロック

(詳細)

プレーンテキスト 変換結果の例
2つのコロンだけの段落は、後続のインデントされた、
もしくはクオートされたテキストが
整形済みブロックであることを示します。

::

  空白文字、改行、空行および
  (*this* や \this などの)すべての
  マークアップはそのまま表示されます。

  2つのコロンだけの段落は、削除
  されます。

``::`` を段落の最後に記述することも
できます。直前に空白文字がある場合は
``::``  は削除されます。直前が
通常の文字である場合は、コロン1つに変換されます。例::

  この形式はとても便利です。

整形済みブロックは、テキストが元のインデントの
深さに戻るまで有効となります。
つまり、以下のようにも記述できます。 ::

      ここからはじめ
    ここへ続き
  ここで終わる

各行ごとにクオートされたブロックは、特に明示する
こと無しに、整形済みブロックとして扱われます。

> メールの引用や
> Haskell言語のプログラムに有効です

2つのコロンだけの段落は、後続のインデントされた、 もしくはクオートされたテキストが 整形済みブロックであることを示します。

  空白文字、改行、空行および
  (*this* や \this などの)すべての
  マークアップはそのまま表示されます。
  
  2つのコロンだけの段落は、削除
  されます。
            

:: を段落の最後に記述することも できます。直前に空白文字がある場合は :: は削除されます。直前が 通常の文字である場合は、コロン1つに変換されます。 例:

  
  この形式はとても便利です。
            

整形済みブロックは、テキストが元のインデントの 深さに戻るまで有効となります。 つまり、以下のようにも記述できます。

      ここからはじめ
    ここへ続き
  ここで終わる

各行ごとにクオートされたブロックは、特に明示する こと無しに、整形済みブロックとして扱われます。

  > メールの引用や
  > Haskell言語のプログラムに有効です

ラインブロック

(詳細)

プレーンテキスト 変換結果の例
| ラインブロックは、アドレスや韻文、
| 装飾の不要なリストなどに対して使われます。
|
| 各行は縦棒 ("|") ではじめます。
|     改行と行頭のインデントは
|     そのままになります。
| 長い文を複数行に別けて書くこともできます。
  その場合、行頭の縦棒のところを
  空白文字にします。
ラインブロックは、アドレスや韻文、
装飾の不要なリストなどに対して使われます。

各行は縦棒 ("|") ではじめます。
改行と行頭のインデントは
そのままになります。
長い文を複数行に別けて書くこともできます。 その場合、行頭の縦棒のところを 空白文字にします。

引用

(詳細)

プレーンテキスト 変換結果の例
引用のブロックは

    インデントした段落を書くだけです。

        入れ子にもできます。

引用のブロックは

インデントした段落を書くだけです。

入れ子にもできます。

Doctest ブロック

(詳細)

プレーンテキスト 変換結果の例

Doctest blocks are interactive
Python sessions. They begin with
"``>>>``" and end with a blank line.

>>> print "This is a doctest block."
This is a doctest block.

Doctest blocks are interactive Python sessions. They begin with ">>>" and end with a blank line.

>>> print "This is a doctest block."
This is a doctest block.

doctest モジュールは、モジュールのドキュメンテーション文字列 (docstring) から、 対話的 Python セッションのように見えるテキストを探しだし、 これらのセッションを実際に実行して、そこに書かれている通りに動作するか検証します。」 (Python ライブラリリファレンス より)

(詳細)

reStructuredText には、表(テーブル)を記述する2通りの記法があります。 グリッドテーブルは良く出来ていますが作成が若干大変です。 シンプルテーブルは作成しやすいですが、(列の結合ができないなど) 機能が制限されます。

プレーンテキスト 変換結果の例

グリッドテーブル

+------------+------------+-----------+
| Header 1   | Header 2   | Header 3  |
+============+============+===========+
| body row 1 | column 2   | column 3  |
+------------+------------+-----------+
| body row 2 | Cells may span columns.|
+------------+------------+-----------+
| body row 3 | Cells may  | - Cells   |
+------------+ span rows. | - contain |
| body row 4 |            | - blocks. |
+------------+------------+-----------+

グリッドテーブル

Header 1 Header 2 Header 3
body row 1 column 2 column 3
body row 2 Cells may span columns.
body row 3 Cells may
span rows.
  • Cells
  • contain
  • blocks.
body row 4

シンプルテーブル

=====  =====  ======
   Inputs     Output
------------  ------
  A      B    A or B
=====  =====  ======
False  False  False
True   False  True
False  True   True
True   True   True
=====  =====  ======

シンプルテーブル

Inputs Output
A B A or B
False False False
True False True
False True True
True True True

区切り線

(詳細)

プレーンテキスト 変換結果の例

区切り線のマーカは、記号文字4つ以上からなる
水平ラインです。

------------

区切り線は、セクションの最初や最後に置くべきでは
ありませんし、区切り線を連続してならべるのも
避けるべきです。

区切り線のマーカは、記号文字4つ以上からなる 水平ラインです。


区切り線は、セクションの最初や最後に置くべきでは ありませんし、区切り線を連続してならべるのも 避けるべきです。

区切り線は、小説や短いフィクションにおいて、 テキストの区分を示したり、 主題や時間、視点といったものの変化を表す 文と文との境界としてよく用いられます。 強調のためにも用いられます。

明示的マークアップ

(脚注などの)表示位置が固定でない語句や、 (リンクやコメントなど)紙文書においては 表現されない語句や、(ディレクティブなどの)特別な処理が必要な 語句に対して、明示的マークアップが行われます。 明示的マークアップは、2つのピリオドと空白文字からはじめます。

脚注

(詳細)

プレーンテキスト 変換結果の例
脚注参照 [5]_.
脚注は、ページの下部等へ
まとめて配置されます。

.. [5] 番号つき脚注。
   ] の後にはコロンを付けないこと。

脚注参照 5。 脚注は、ページの下部等へまとめて配置されます。

[5] 番号つき脚注。 ] の後にはコロンを付けないこと。
次の様にすれば、脚注の番号を自動に振ることもできます。
[#]_ および [#]_ 。

.. [#] 第一番目
.. [#] 第二番目

番号付用のラベルを記述できます。例、
[#fourth]_ および [#third]_ 。

.. [#third] 別名 third_

.. [#fourth] 別名 fourth_

次の様にすれば、脚注の番号を自動に振ることもできます。 1 および 2

番号付用のラベルを記述できます。例、 4 および 3


[1] 第一番目
[2] 第二番目
[3] 別名 third
[4] 別名 fourth
脚注に記号を自動でつけることもできます。
 [*]_ および [*]_ 。

.. [*] 第一番目の記号つき脚注
.. [*] これは2番目

脚注に記号を自動でつけることもできます。 * および

[*] 第一番目の記号つき脚注
[†] これは2番目

自動で振る場合の脚注の番号は、参照の出現順ではなく、脚注自体の順によって 決まります。番号付用のラベルを付けない場合 ("[#]_") は、 参照と脚注の順が相対的に同じになるようにする必要があります。 記号つきの場合 ("[*]_") でも同様です。

出典

(詳細)

プレーンテキスト 変換結果の例
出典参照 [CIT2002]_ 。
出典は、ページの下部等へまとめて配置されます。

.. [CIT2002] とある出典
   (たとえば雑誌など)

出典のラベルは、英数字、アンダーライン、ハイフン
およびピリオドで構成されます。
大小文字は区別されません。

出典参照が [this]_ と書かれた場合、
this_ とすれば出典を参照できます。

.. [this] こちら

出典参照 [CIT2002] 。 出典は、ページの下部等へまとめて配置されます。

出典のラベルは、英数字、アンダーライン、ハイフンおよびピリオド で構成されます。大小文字は区別されません。

出典参照が [this] と書かれた場合、 this とすれば出典を参照できます。


[CIT2002] とある出典 (たとえば雑誌など).
[this] こちら

リンクターゲット

(詳細)

外部ターゲット

プレーンテキスト 変換結果の例
外部リンクの例、 Python_.

.. _Python: http://www.python.org/

折りたたみ形式
外部リンクの例、 Python.
コールアウト形式
外部リンクの例、 Python.

Python: http://www.python.org/

"折りたたみ形式" は、HTML 文書で使われる典型的な表現方法です。 "コールアウト形式" は、プリントアウトする場合に適していて、 リンクは脚注と同様に明示的に示されます。

内部ターゲット

プレーンテキスト 変換結果の例
内部相互参照の例、 example_.

.. _example:

ここ が、内部相互参照の例のターゲットになります。

折りたたみ形式
内部相互参照の例、 example

ここが、内部相互参照の例の ターゲットになります。

コールアウト形式
内部相互参照の例、 example

example:
ここ が、内部相互参照の例のターゲットになります。

間接ターゲット

(詳細)

プレーンテキスト 変換結果の例
Python_ は、
`私のお気に入りのプログラム言語`__ です。

.. _Python: http://www.python.org/

__ Python_

Python は、 私のお気に入りのプログラム言語 です。

"__" から始まる2番目のリンクターゲットは、 間接ターゲットでもあり、無名ターゲットでもあります。 本文テキスト中で、アンダースコア2つの接尾辞は、無名参照 を示すのに使われます。 無名ターゲットに対しては、参照テキストを繰り返す必要がありません。 参照テキストが長かったりする場合に便利です。しかし、 対応を取ることが難しくなるので、ターゲットと参照とをあまり離すべきでは ありません。

暗黙ターゲット

(詳細)

各章のタイトル、脚注および出典は、自動的にリンクターゲットに なります(タイトル名や脚注ラベル、出典ラベルがリンク名と なります。)

プレーンテキスト 変換結果の例
タイトルもターゲット
=======================
暗黙ターゲットの例、
`タイトルもターゲット`_ 。
タイトルもターゲット

暗黙ターゲットの例、 タイトルもターゲット

ディレクティブ

(詳細)

ディレクティブは、汎用の拡張機構で、 ひとつの記法で様々な要素をサポートできるように するための手段です。 標準でサポートされているディレクティブについては、 reStructuredText ディレクティブを参照してください。

プレーンテキスト 変換結果の例
画像の例、

.. image:: images/ball1.gif

画像の例、

ball1

代入参照とその定義

(詳細)

「代入」は、インラインなディレクティブとでも呼べるもので、 任意の要素をテキスト中に挿入することができます。

プレーンテキスト 変換結果の例
|biohazard| シンボルは、 医療廃棄物を収めたコンテナに 表示されるマークです。

.. |biohazard| image:: biohazard.png

biohazard シンボルは、 医療廃棄物を収めたコンテナに表示されるマークです。

コメント

(詳細)

明示的マークアップの後に記述されるテキストで、 上記の要素のどれにも該当しないものは、コメントになります。

プレーンテキスト 変換結果の例
.. このテキストは表示されません
   しかし、たとえばHTMLでは、
   コメントとして描画されます。)
 
空のコメントの後のブロックは
コメントにはなりません。
..
  ですので、このブロックはインデント
  されていますが、表示されます。
空のコメントの後のブロックは コメントにはなりません。
ですので、このブロックはインデント されていますが、表示されます。

助けを得たい場合は

Docutils や reStructuredText についての質問があったり、 何らかの助力が必要なユーザは、 Docutils ユーザ メーリングリスト(英語)メールを出してみる と良いでしょう。 Docutils プロジェクトのウェブサイトにも 詳しい情報が記載されています。