執筆ドキュメント¶
バージョン管理システム利用指針¶
方針¶
ブランチ数を最小にする
作業単位で情報が分散しないようにする(凝集度を高める)
作業状況をわかりやすくする(チェックボックスにて進捗を管理する)
ブランチ一覧¶
- master
少なくとも、査読、日本語警察実施済みの成果物を配置する
- [翻訳範囲を示すブランチ]
該当範囲の翻訳、査読、日本語警察作業を行うため、masterから作成されるブランチで、作業後masterにマージされる
ブランチ名は、[a-zA-Z_0-9]からなる文字列で命名する
Tutorialの場合 : tutorial[番号]_[タイトル]_[lesson][最初の番号]_[最後の番号]
Lectureの場合 : lecture[番号]_[タイトル]
- user_[ユーザレビュー範囲を示すブランチ]
ユーザレビューで変更が必要な場合、masterから作成されるブランチで、作業後masterにマージされる
[ユーザレビュー範囲を示すブランチ]は、[翻訳範囲を示すブランチ]に準拠する
作業の流れ¶
1〜4に 役割 2 を分けて作業を進める。但し、各作業フェーズに特化しない全体的な課題はIssueを作成して解決する。
翻訳(詳細はGitHub Wiki 3 を参照)
翻訳範囲を示すブランチを作成する
(空)コミットを行う
masterブランチに対し、Draft PR(Pull Request)を発行する
チェックボックスにて、作業進捗が分かるようにする
作成したブランチに翻訳コミットを追加していき翻訳を終わらせる
翻訳作業が終わったら、Draft PRをPRに変更し、PR上でReviewersに査読メンバーを追加した上で@mentionで通知する
査読
PRに対して、コメントを記載していき査読を終わらせる
PRのFiles changedタブで差分を開き+アイコンをクリックしてコメントを追記
必要に応じて、翻訳者と連絡を取り合い査読を終わらせる
査読が完了したら、PR上でReviewersに日本語警察メンバーを追加した上で@mentionで通知する
日本語警察
PRに対して、コメントを記載していき日本語警察を終わらせる
PRのFiles changedタブで差分を開き+アイコンをクリックしてコメントを追記
必要に応じて、翻訳者と連絡を取り合い日本語警察を終わらせる
日本語警察が完了したら、PRをマージする
ユーザレビュー
翻訳者の依頼を受け、指定された翻訳範囲のユーザレビューを行う
必要に応じて、翻訳者と連絡を取り合いユーザレビューを終わらせる
変更が必要な場合に限り以下を行う
翻訳者がブランチを作成して修正を行い、PR上でReviewersにユーザレビューメンバーを追加した上でPRを発行し、@mentionで通知する
ユーザレビュー担当者が確認を行い、問題なければマージする
脚注
ファイルの作成とtoctreeへの登録¶
ディレクトリ構成¶
├── build
└── source
├── _static
├── _templates
├── conf.py
└── index.rst
- build
ビルド処理で生成されたHTMLやPDFが格納
- source
原稿のファイル(.rstや.ipynb)
- source/index.rst
マスタドキュメント
reSturedTextのルール¶
見出し¶
下記のようにします。必要であれば階層を増やしても問題ありません。
========
章見出し
========
節見出し
========
項見出し
--------
各見出しにはリファレンスできるよう、ラベルを記述します。名前が重複しないよう、ラベルは _章-節-項
の形式にします。
<例>
.. _sos:
=====
SOS団
=====
.. _sos-about:
SOS団とは
=========
.. _sos-about-history:
SOS団の歴史
-----------
番号は付与しません。自動的に割り振られます。
Note、Warning¶
noteとwarningのみを用います。それ以外のディレクティブを使いたい場合はissueを上げて協議します。
<例>
.. note:: これはnoteです
tipsやhintも含みます
注釈
これはnoteです
tipsやhintも含みます
.. warning:: これはwarningです
attentionやcautionも含みます
警告
これはwarningです
attentionやcautionも含みます
URL¶
脚注に記載します。 rubric::
ディレクティブは 節(ファイル)の最後 に記載します。
<例>
詳細については公式ドキュメント [#python_org]_ を参照してください。
.. rubric:: 脚注
.. [#python_org] https://docs.python.org/ja/3/index.html
詳細については公式ドキュメント 1 を参照してください。
強調¶
- インラインリテラル ``word``
関数、クラス、引数、値
- 強い強調 **word**
初出のモジュール、クラス
- 強調 *word*
上記以外
literalinclude::
ディレクティブで強調する場合は :emphasize-lines:
オプションを用います。
<例>
.. literalinclude:: src/example.py
:caption: example.py
:language: python
:emphasize-lines: 1,6-9
:linenos:
1 2 3 4 5 6 7 8 9 10 11 12 | def fizzbuzz(num):
if num % 3 == 0 and num % 5 == 0:
return 'FizzBuzz'
elif num % 3 == 0:
return 'Fizz'
elif num % 5 == 0:
return 'Buzz'
else:
return str(num)
for num in range(1, 101):
print(fizzbuzz(num))
|
画像¶
figure::
ディレクティブを用います。 :name:
オプションとキャプションをつけます。
<例>
.. figure:: https://www.python.org/static/img/python-logo.png
:name: python_logo
ここがキャプションになります

ここがキャプションになります¶
参照する場合は :numref:
ロールを用います。
これはPythonの画像です( :numref:`python_logo` )
これはPythonの画像です( 図 1 )
表(テーブル)¶
次のディレクティブを用います。 :name:
オプションとキャプションをつけます。
<例>
list-table
cst-table
table(grid tableはできるだけ使わない)
.. list-table:: 好きな食べ物
:name: foods
:header-rows: 1
* - なまえ
- 食べ物
* - 長門
- カレー
* - 小泉
- りんご
なまえ |
食べ物 |
---|---|
長門 |
カレー |
小泉 |
りんご |
参照する場合は :numref:
ロールを用います。
<例>
団員の好きな食べ物を :numref:`foods` に示します。
団員の好きな食べ物を 表 1 に示します。
クロスリファレンス¶
脚注 + :ref:
ロールを用います。
nbsphinx [#ref1]_ を用います。
.. rubric:: 脚注
.. [#ref1] :ref:`nbsphinx`
nbsphinx 2 を用います。
コード¶
コマンドは code-block
ディレクティブを用います。言語名を明記し、 :name:
および :caption:
オプションをつけます。
<例>
.. code-block:: python
:name: zen_of_python
:caption: Zen of Python
import this
import this
参照する場合は :numref:
ロールを用います。
<例>
:numref:`zen_of_python` を実行します。
リスト 4 を実行します。
Pythonスクリプトを参照する場合は literalinclude::
ディレクティブを用います。 :linenos:
オプションで行番号を表示します。コードの途中から切り出す場合は :lines:
オプションでとりだす行番号を指定し、 :lineno-start:
オプションで行番号を振り直します。
<例>
.. literalinclude:: src/example.py
:caption: example.py
:language: python
:lines: 11-
:lineno-start: 11
:linenos:
11 12 | for num in range(1, 101):
print(fizzbuzz(num))
|
ターミナル¶
次のOSを対象とします。
Windows
macOS
Linux(Ubuntu)
コマンドは code-block
ディレクティブを用い、ハイライトする言語は次のとおりにします。macOSのシンタックスはzshとなっていますが、内容はbashで構いません。
OS |
言語 |
caption |
プロンプト |
---|---|---|---|
Windows |
powershell |
冒頭に[Win] をつける |
> |
macOS |
zsh |
冒頭に[macOS] をつける |
$ |
macOS/Linux |
bash |
冒頭に[macOS/Linux] をつける |
$ |
Windows/macOS/Linux |
bash |
冒頭に[Win/macOS/Linux] をつける |
$ |
<例>
.. code-block:: powershell
:caption: [Win] 仮想環境を有効化
> venv\Scripts\activate.ps1
> venv\Scripts\activate.ps1
文章のルール¶
敬体と常体¶
ですます調にします。
- 誤
pip install jupyter で Jupyter をインストールできる。
- 正
pip install jupyter で Jupyter をインストールできます。
全角と半角¶
全角の英数は使用しません。リテラルを使わない場合は前後のスペース不要です。
日付¶
文章中に日付が必要な場合は以下のフォーマットで記述します。必ず「年」を含めます。
2016年3月14日
2016年12月25日
プログラミングコード中の日付は、可能であれば YYYY-MM-DD とします。
2016-03-14
2016-12-25
言語やライブラリの仕様、その他の制約がある場合はこの限りではありません。
固有名詞¶
固有名詞は大文字・小文字を含めて正確な表記を用います。
- 誤
numPyは行列計算のためのパッケージです。
- 正
NumPyは行列計算のためのパッケージです。
略称を用いる場合は、最初に登場する箇所で正式名称を記述した上で、括弧書きで略称を示します。
World Wide Web Consortium(以下 W3C)は Web技術
Pythonのバージョンが必要な場合はマイナーバージョンを表記し、バージョンの前にはスペースを空けます。
Python 3.5
パッケージのバージョンを示す場合は原則パッチバージョンまで含めます。
NumPy 1.11.0
ただし、MEASURE.MINOR.PATCH でバージョニングされていない場合は配布元のバージョニングに従います。
コード解説のルール¶
メソッド¶
「<メソッド名>()
メソッド」とし、サフィックスをつけます。
``plot()`` メソッドを実行します。
メソッドの所属クラスを明記した方が説明上都合がよい・または分かりやすい場面ではクラス名を記述します。
``DataFrame.plot()`` メソッドを実行します。
メソッドの所属オブジェクトを明記した方が説明上都合がよい・または分かりやすい場面ではオブジェクト名を記述します。
``df.plot()`` メソッドを実行します。
ドキュメントのビルド¶
HTML¶
make html
build/html
に index.html
が生成される。
Dockerからビルドする場合。
docker run --rm -v $PWD:/build driller/nbsphinx-build:requirements make html
textlint¶
使用するルールプリセット¶
ルールの追加¶
quantopian-doc.yml
に追記します。
<例>
version: 1
rules:
- pattern: 取引アルゴリズム
expected: トレーディングアルゴリズム
インストール¶
Docker(後述)から実行する場合は不要です。
npm install --save-dev \
textlint \
textlint-rule-preset-ja-technical-writing \
textlint-rule-preset-jtf-style \
textlint-rule-prh \
textlint-plugin-rst
pip install docutils-ast-writer
実行¶
.rstファイルの場合
textlint <path_to_rst>
.ipynbファイルの場合
jupyter nbconvert <path_to_ipynb> \
--to rst --stdout \
--TemplateExporter.exclude_code_cell=True | \
textlint --stdin
Dockerから実行する場合
textlint
コマンドのpathの先頭に /work
をつけます
docker run --rm -v $PWD:/work driller/textlint-rst textlint /work/<path_to_rst>