私はプロジェクトの文書化にはSphinxを利用していて、Sphinxのソースはそのプロジェクト内のdoc/source下に置いていてます。また、プロジェクトのREADMEもRSTで記述しています。例えば下図のような感じです。
project/
|
+--README.rst
|
+--doc/
: |
+--source/
| |
: +--overview.rst
|
:
GitHubのリポジトリのフロントページには、README.rst
の内容が表示されるので、README.rst
にはそのプロジェクトの概要を記述すると思いますが、同じような内容を、そのプロジェクトのドキュメント内にも含めたい場合があります。上の例では、ドキュメントのソースディレクトリ内のoverview.rst
内に、README.rst
とほぼ同じ内容を記述したい場合です。
同じ内容をoverview.rst
にも記述すればよいのですが、修正するときに両方のファイルを更新しなければならず、どちらかを更新し忘れたりする恐れもあり、少し面倒です。できれば一カ所だけを更新したいものです。
解決策として、include
ディレクティブを使用することで、overview.rst
tに、README.rst
から内容をoverview.rst
に生成することが可能です。上の例では、次のようにoverview.rst
に記述しビルドすると、README.rst
の5行目から124行目までと同一の内容が、overview.rst
のビルド結果にも生成されます。
.. include:: ../../README.rst
:start-line: 4
:end-line: 125
overview.rst
に反映したい内容は、README.rst
全体ではなく、一部だけだったりするので、この範囲を指定するオプションがはありがたいです。include
ディレクティブにはこれ以外にもオプションがあるので、他にも便利なオプションがあるかもしれません。
ただし、GitHub上でoverview.rst
を直接開けると、README.rst
の内容は表示されません。セキュリティ上include
ディレクティブは対応していないらしいです。反ですので、逆にREADME.rst
にoverview.rst
の内容をinclude
するとGitHub上のレポジトりのページにその部分が表示されなくなるのでやめたほうがよいでしょう。