Rubyリファレンスマニュアルを修正する方法

この記事は2020年ふりかえりアドベントカレンダー 2日目です。昨日の記事は 2020年の終わりと2021年に向けての準備をするぞという気持ち - いまブログ です。

Ruby リファレンスマニュアルとは

Ruby の日本語版の公式ドキュメントです。略して「るりま」と呼びます。Ruby を書いたことがある方なら一度は読んだことがあるのではないでしょうか。

f:id:imaizumimr:20201202213058p:plain

オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (Ruby 2.7.0 リファレンスマニュアル)

るりまは GitHub 上で管理されていて、誰でも修正したり、議論することができます。今回は、るりまを修正したい、気になる点を挙げたい、と思ったときにどうやったらいいのかということを書きます。

るりまのリポジトリrurema/doctree: Repository of Japanese Ruby reference manual

ちなみに「るびま」は Rubyist Magazine の略で使われることが多いです。面白く勉強になる記事がたくさんあるのでおすすめです。

るびま

るりまを修正する方法

GitHub に issue を立てたり、PR を送ることで修正できます。

issue を立てる方法

誰でも GitHub 上で issue を作成できます。

issue の内容は、

  • ドキュメントの単純な誤り指摘(バージョン間違いなど)
  • ドキュメントをより良くするための提案(説明文追加など)
  • サンプルコード提供
  • 既に上がっている issue に対するコメント

など、なんでもOKです。

PR を送る

具体的に修正したい箇所が決まっている場合は、PR を送ると反映されやすいです。

このとき、リファレンスマニュアル用の記法を使わない場合(誤字修正、サンプルコード追加など)は GitHub 上で直接修正すると楽です。

リファレンスマニュアル用の記法を使う場合(バージョンによって違う書き方をしたい場合など)は fork して修正して HTML を確認して push するとよいです。

GitHub 上で直接修正する方法

fork していない場合は先に GitHubrurema/doctree を fork しておきます。

f:id:imaizumimr:20201202215006p:plain

るりまで編集したいページの右上の方にある [edit] リンクを押します。

f:id:imaizumimr:20201202214901p:plain

GitHub 上で修正します。

f:id:imaizumimr:20201202221450p:plain

差分を確認します。

f:id:imaizumimr:20201202221552p:plain

commit メッセージを書きます。

f:id:imaizumimr:20201202221656p:plain

あとは Propose changes を押せば PR を送れます。簡単ですね!

fork してローカルで修正して PR を送る方法

Tutorial · rurema/doctree Wiki にとても詳しく書いてあります。抜粋してここでも書きます。

fork します。

f:id:imaizumimr:20201202215006p:plain

ローカルに clone します。

$ git clone https://github.com/自分のアカウント名/doctree.git rubydoc
$ cd ./rubydoc

ブランチを切ります。

$ git checkout -b ブランチ名
Switched to a new branch 'ブランチ名'

好きなエディタでドキュメントを修正します。

リファレンスマニュアルの書式のまとめは ReferenceManualFormatDigest · rurema/doctree Wiki にあります。

bitclust をインストール、セットアップします。これでるりまのファイルから HTML ファイルを生成できるようになります。

$ gem install bitclust-core bitclust-dev refe2
$ bitclust setup

HTML ファイルを生成します。

bitclust htmlfile コマンドで生成できます。たとえば、

$ bitclust htmlfile ./refm/api/src/_builtin/Array --target=Array#pop --ruby=2.5.0 > /tmp/Array_pop.html

とすると、 Array#popRuby 2.5.0 版の html が /tmp/Array_pop.html に作成されます。このファイルをブラウザで開くことで、生成されるHTMLを確認できます。

bitclust htmlfile の詳細についてはこちらにまとまっています。BitClust · rurema/doctree Wiki

html が問題なく生成できることを確認します。

f:id:imaizumimr:20201202233403p:plain

commit します。commit メッセージは日本語でも英語でもかまいません。

$ git add .
$ git commit

remote に push します。

$ git push origin <ブランチ名>

PR を作成します。

push すると rurema/doctree から Compare & pull request できるようになっています。 そこから PR を作成します。

PR は日本語でOKです。

f:id:imaizumimr:20201202233140p:plain

できました。

困ったことがあれば

Slack の ruby-jp に #rurema チャンネルがあり、質問することができます。

まとめ

るりまを読んでいて、この説明よくわからないな〜とか、もっとサンプルコードがほしいな〜とか、誤字かも?と思ったそのときがコントリビュートチャンスです!

るりまは OSS ですが日本語で issue や PR をつくっていいので、気軽にコミュニケーションができます。また、OSS に PR を送る一連の流れの練習にもなります。

どんどんるりまをよりよくしていきましょう!

参考資料