Ubuntu18.04で使用するRe:VIEW4環境構築 ( rbenvを利用したRuby導入〜TechBoosterのRe:VIEWテンプレート導入まで)

# はじめに
最近、PCを新調してしまったのでRe:VIEWでの執筆環境を再構築してみました。
その時の備忘録・新たにUbuntuでRe:VIEWの執筆環境を構築する人向けに環境構築の情報を記述しておきます。
今の時代、dockerで環境はスグ構築できたりしますが、一度ローカル環境でコツコツ構築していくと新たな知見が得られるかもです！

# Re:VIEWとは
EWBやRDあるいはWikiに似た簡易フォーマットで記述した、独自のマークアップ言語テキストファイルを使用した紙書籍・電子書籍作成支援ツールです。
出力フォーマットとしてPDFやEPUBなど、さまざまな書籍のフォーマットに対応しています。

# 導入PC OSバージョン
- Ubuntu 18.04.3 LTS

<!--
```
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.3 LTS
Release:	18.04
Codename:	bionic
```
-->

# 導入したTool群の各種バージョン
- TeX 3.14159265 (TeX Live 2017/Debian)
- Ruby関連
  - rbenv 1.1.2-17-g7795476
      - ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
          - gem　3.0.3
          - bundle 2.1.4
  - ruby-build 20200115-8-g73b926b
- Node.js関連
  - nodebrew 1.0.1
      - node v12.14.1
          - npm 6.13.4
- Re:VIEW関連
  - Re:VIEW 4.0.0
  - TechBoosterのRe:VIEWテンプレート hash:a563244

<!--
```
$ tex -v
TeX 3.14159265 (TeX Live 2017/Debian)
kpathsea version 6.2.3
・・・
$ rbenv -v
rbenv 1.1.2-17-g7795476
$ rbenv install --version
ruby-build 20200115-8-g73b926b
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
$ gem -v
3.0.3
$ bundle -v
Bundler version 2.1.4
$ nodebrew help
nodebrew 1.0.1
・・・
$ node -v
v12.14.1
$ npm -v
6.13.4
ReVIEW-Template
$ git checkout -b Branch_a563244 a563244
$ review version
4.0.0
```
-->

-----

# TEXのインストール
Re:VIEWは、PDFを生成するために、TeXのインストールも必要となっています。
この為、事前にTEXを導入していきます。

```
$ sudo apt install texlive-lang-japanese texlive-latex-extra
```

-----

# Rubyのインストール
今回は、rbenvを利用して、Rubyを入れていきます。
rbenvとは、次のようなツールとなっています。
> rbenvは、Rubyのバージョンを選択し、開発(development)環境を製品(production)環境にマッチしていることを保証するために使用します。 rbenvはBundlerによるデプロイ環境を、 Rubyのアップグレードによって損うことなく動作します。
> 
> <b>引用：</b> [rbenv(http://ruby.studio-kingdom.com/rbenv/)](http://ruby.studio-kingdom.com/rbenv/)

簡単に説明すると、複数のRubyのバージョンを管理して、プロジェクトごとにRubyのバージョンを指定して使う事ができるツールです。
読み方は「アールビー・エンブ」または「アールベンブ」らしいです。）

## rbenv をログインユーザのホームディレクトリに設定する
後述する`rbenv init`を実行することにより、rbenv管理ディレクトリがホームディレクトリ直下の`.rbenv`に作成されます。
この為、rbenv自体をあらかじめホームディレクトリ直下の`.rbenv`に設置したほうが管理しやすいと思います。
（当初、`/opt/rbenv` へ導入して、いろいろハマったのは内緒ｗ）

```bash
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
````
<details><summary>rbenv　clone ログ</summary>
```
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Cloning into '$HOME/.rbenv'...
remote: Enumerating objects: 23, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 2811 (delta 10), reused 13 (delta 4), pack-reused 2788
Receiving objects: 100% (2811/2811), 542.41 KiB | 786.00 KiB/s, done.
Resolving deltas: 100% (1756/1756), done.
```
</details>

## ruby-buildに導入に必要なパッケージのインストール
```
$ sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev
```
## ruby-buildをrbenv管理ディレクトリのpluginのディレクトリに適用する。
`rbenv install`が使用できるようにrbenvのpluginsディレクトリへ`ruby-build`を導入していく
> rbenv管理ディレクトリである`.rbenv`へ導入しないと
> 正しくセットアップされているか確認する為のスクリプトチェックで、
>> Checking \`rbenv install' support: <font color="#ff0000">not found</font>

> となり、`rbenv install`コマンドが使えない状態になるので、注意が必要です。 

```
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
```
<details><summary>ruby-build　clone ログ</summary>
```
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '$HOME/.rbenv/plugins/ruby-build'...
remote: Enumerating objects: 341, done.
remote: Counting objects: 100% (341/341), done.
remote: Compressing objects: 100% (243/243), done.
remote: Total 10600 (delta 248), reused 120 (delta 83), pack-reused 10259
Receiving objects: 100% (10600/10600), 2.22 MiB | 1005.00 KiB/s, done.
Resolving deltas: 100% (6929/6929), done.
```

</details>

## .rbenvへのPATHを通す
rbenv管理ディレクトリである、ホームディレクトリ直下の`.rbenv`のパスを通すため、`.bash_profile`へパスが通る設定をする。

```
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
```
また、実行しているコンソールへ設定したPATHが通るように、先程設定した`.bash_profile`のシェルの設定を反映される。

```
$ source ~/.bash_profile
```

## rbenvのセットアップ
次のコマンドを実行することにより、rbenvで使用されるshimsとautocompletionを有効化させる。

```
$ ~/.rbenv/bin/rbenv init
```

<details><summary>rbenv init 実行 ログ</summary>
\# Load rbenv automatically by appending
\# the following to ~/.bash_profile:
　
eval "$(rbenv init -)"
</details>

実行ログに出ているように、`.bash_profile`に次の内容を追加し、`eval "$(rbenv init -)" `を実行できるようにする。

```
$ echo `eval \"\$\(rbenv init -\)\"` >> ~/.bash_profile
```

また、実行しているコンソールへ設定した`eval "$(rbenv init -)" `を実行させる為、先程設定した`.bash_profile`のシェルの設定を反映される。

```
$ source ~/.bash_profile
```

## rbenvならびに、ruby-buildが正しくセットアップされているか確認
チェックする為のスクリプトをcurlを使用してダウンロード実行する。

```
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
```

次のような実行ログになれば正常です。（私の場合、Rubyは入っていないため、Ruby versionsはnoneとなっています。）
<details><summary>チェックスクリプト 実行 ログ</summary>
Checking for \`rbenv' in PATH: multiple
  You seem to have multiple rbenv installs in the following locations.
  Please pick just one installation and remove the others.
　  
  \$HOME/.rbenv/bin/rbenv
　
Checking for rbenv shims in PATH: <font color='green'>OK</font>
Checking \`rbenv install' support: <font color='green'>\$HOME/.rbenv/plugins/ruby-build/bin/rbenv-install</font> (ruby-build 20200115-8-g73b926b)
Counting installed Ruby versions: <font color='yellow'>none</font>
  There aren't any Ruby versions installed under \`\$HOME/.rbenv/versions'.
  You can install Ruby versions like so: <b>rbenv install 2.2.4</b>
Checking RubyGems settings: <font color='green'>OK</font>
Auditing installed plugins: <font color='green'>OK</font>
</details>

### ===== rbenv機能メモ =====
#### rbenvのバージョン確認
```
$ rbenv --version
rbenv 1.1.2-17-g7795476
```

#### rbenvで使用している現在のRubyバージョン確認
```
$ rbenv version
system    # rbenv / ubuntuのaptでもRubyを入れてない場合は、このようになる。
```

#### rbenvでインストールしてあるrubyのバージョン確認
```
$ rbenv versions
Warning: no Ruby detected on the system    # rbenvでもRubyを入れてない場合は、このようになる。
```

#### rbenvで使用できるRubyバージョンリストの確認
```
$ rbenv install -l
1.8.5-p52
・・・
```

<details><summary>rbenv versions 実行 ログ(2020.1.20現在の使用できるRubyバージョン一覧)</summary>
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
1.8.6
1.8.6-p36
1.8.6-p110
1.8.6-p111
1.8.6-p114
1.8.6-p230
1.8.6-p286
1.8.6-p287
1.8.6-p368
1.8.6-p369
1.8.6-p383
1.8.6-p388
1.8.6-p398
1.8.6-p399
1.8.6-p420
1.8.7-preview1
1.8.7-preview2
1.8.7-preview3
1.8.7-preview4
1.8.7
1.8.7-p17
1.8.7-p22
1.8.7-p71
1.8.7-p72
1.8.7-p160
1.8.7-p173
1.8.7-p174
1.8.7-p248
1.8.7-p249
1.8.7-p299
1.8.7-p301
1.8.7-p302
1.8.7-p330
1.8.7-p334
1.8.7-p352
1.8.7-p357
1.8.7-p358
1.8.7-p370
1.8.7-p371
1.8.7-p373
1.8.7-p374
1.8.7-p375
1.9.0-0
1.9.0-1
1.9.0-2
1.9.0-3
1.9.0-4
1.9.0-5
1.9.1-preview1
1.9.1-preview2
1.9.1-rc1
1.9.1-rc2
1.9.1-p0
1.9.1-p129
1.9.1-p243
1.9.1-p376
1.9.1-p378
1.9.1-p429
1.9.1-p430
1.9.1-p431
1.9.2-preview1
1.9.2-preview3
1.9.2-rc1
1.9.2-rc2
1.9.2-p0
1.9.2-p136
1.9.2-p180
1.9.2-p290
1.9.2-p318
1.9.2-p320
1.9.2-p326
1.9.2-p330
1.9.3-dev
1.9.3-preview1
1.9.3-rc1
1.9.3-p0
1.9.3-p105
1.9.3-p125
1.9.3-p194
1.9.3-p286
1.9.3-p327
1.9.3-p362
1.9.3-p374
1.9.3-p385
1.9.3-p392
1.9.3-p426
1.9.3-p429
1.9.3-p448
1.9.3-p484
1.9.3-p545
1.9.3-p547
1.9.3-p550
1.9.3-p551
2.0.0-dev
2.0.0-preview1
2.0.0-preview2
2.0.0-rc1
2.0.0-rc2
2.0.0-p0
2.0.0-p195
2.0.0-p247
2.0.0-p353
2.0.0-p451
2.0.0-p481
2.0.0-p576
2.0.0-p594
2.0.0-p598
2.0.0-p643
2.0.0-p645
2.0.0-p647
2.0.0-p648
2.1.0-dev
2.1.0-preview1
2.1.0-preview2
2.1.0-rc1
2.1.0
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.1.6
2.1.7
2.1.8
2.1.9
2.1.10
2.2.0-dev
2.2.0-preview1
2.2.0-preview2
2.2.0-rc1
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.2.10
2.3.0-dev
2.3.0-preview1
2.3.0-preview2
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.4.0-dev
2.4.0-preview1
2.4.0-preview2
2.4.0-preview3
2.4.0-rc1
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.4.7
2.4.8
2.4.9
2.5.0-dev
2.5.0-preview1
2.5.0-rc1
2.5.0
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5
2.5.6
2.5.7
2.6.0-dev
2.6.0-preview1
2.6.0-preview2
2.6.0-preview3
2.6.0-rc1
2.6.0-rc2
2.6.0
2.6.1
2.6.2
2.6.3
2.6.4
2.6.5
2.7.0-dev
2.7.0-preview1
2.7.0-preview2
2.7.0-preview3
2.7.0-rc1
2.7.0-rc2
2.7.0
2.8.0-dev
jruby-1.5.6
jruby-1.6.3
jruby-1.6.4
jruby-1.6.5
jruby-1.6.5.1
jruby-1.6.6
jruby-1.6.7
jruby-1.6.7.2
jruby-1.6.8
jruby-1.7.0-preview1
jruby-1.7.0-preview2
jruby-1.7.0-rc1
jruby-1.7.0-rc2
jruby-1.7.0
jruby-1.7.1
jruby-1.7.2
jruby-1.7.3
jruby-1.7.4
jruby-1.7.5
jruby-1.7.6
jruby-1.7.7
jruby-1.7.8
jruby-1.7.9
jruby-1.7.10
jruby-1.7.11
jruby-1.7.12
jruby-1.7.13
jruby-1.7.14
jruby-1.7.15
jruby-1.7.16
jruby-1.7.16.1
jruby-1.7.16.2
jruby-1.7.17
jruby-1.7.18
jruby-1.7.19
jruby-1.7.20
jruby-1.7.20.1
jruby-1.7.21
jruby-1.7.22
jruby-1.7.23
jruby-1.7.24
jruby-1.7.25
jruby-1.7.26
jruby-1.7.27
jruby-9.0.0.0.pre1
jruby-9.0.0.0.pre2
jruby-9.0.0.0.rc1
jruby-9.0.0.0.rc2
jruby-9.0.0.0
jruby-9.0.1.0
jruby-9.0.3.0
jruby-9.0.4.0
jruby-9.0.5.0
jruby-9.1.0.0-dev
jruby-9.1.0.0
jruby-9.1.1.0
jruby-9.1.2.0
jruby-9.1.3.0
jruby-9.1.4.0
jruby-9.1.5.0
jruby-9.1.6.0
jruby-9.1.7.0
jruby-9.1.8.0
jruby-9.1.9.0
jruby-9.1.10.0
jruby-9.1.11.0
jruby-9.1.12.0
jruby-9.1.13.0
jruby-9.1.14.0
jruby-9.1.15.0
jruby-9.1.16.0
jruby-9.1.17.0
jruby-9.2.0.0-dev
jruby-9.2.0.0
jruby-9.2.1.0-dev
jruby-9.2.1.0
jruby-9.2.3.0
jruby-9.2.4.0
jruby-9.2.4.1
jruby-9.2.5.0
jruby-9.2.6.0
jruby-9.2.7.0
jruby-9.2.8.0
jruby-9.2.9.0
maglev-1.0.0
maglev-1.1.0-dev
maglev-2.0.0-dev
mruby-dev
mruby-1.0.0
mruby-1.1.0
mruby-1.2.0
mruby-1.3.0
mruby-1.4.0
mruby-1.4.1
mruby-2.0.0
mruby-2.0.1
mruby-2.1.0
rbx-2.2.2
rbx-2.2.3
rbx-2.2.4
rbx-2.2.5
rbx-2.2.6
rbx-2.2.7
rbx-2.2.8
rbx-2.2.9
rbx-2.2.10
rbx-2.3.0
rbx-2.4.0
rbx-2.4.1
rbx-2.5.0
rbx-2.5.1
rbx-2.5.2
rbx-2.5.3
rbx-2.5.4
rbx-2.5.5
rbx-2.5.6
rbx-2.5.7
rbx-2.5.8
rbx-2.6
rbx-2.7
rbx-2.8
rbx-2.9
rbx-2.10
rbx-2.11
rbx-2.71828182
rbx-3.0
rbx-3.1
rbx-3.2
rbx-3.3
rbx-3.4
rbx-3.5
rbx-3.6
rbx-3.7
rbx-3.8
rbx-3.9
rbx-3.10
rbx-3.11
rbx-3.12
rbx-3.13
rbx-3.14
rbx-3.15
rbx-3.16
rbx-3.17
rbx-3.18
rbx-3.19
rbx-3.20
rbx-3.21
rbx-3.22
rbx-3.23
rbx-3.24
rbx-3.25
rbx-3.26
rbx-3.27
rbx-3.28
rbx-3.29
rbx-3.30
rbx-3.31
rbx-3.32
rbx-3.33
rbx-3.34
rbx-3.35
rbx-3.36
rbx-3.37
rbx-3.38
rbx-3.39
rbx-3.40
rbx-3.41
rbx-3.42
rbx-3.43
rbx-3.44
rbx-3.45
rbx-3.46
rbx-3.47
rbx-3.48
rbx-3.49
rbx-3.50
rbx-3.51
rbx-3.52
rbx-3.53
rbx-3.54
rbx-3.55
rbx-3.56
rbx-3.57
rbx-3.58
rbx-3.59
rbx-3.60
rbx-3.61
rbx-3.62
rbx-3.63
rbx-3.64
rbx-3.65
rbx-3.66
rbx-3.67
rbx-3.68
rbx-3.69
rbx-3.70
rbx-3.71
rbx-3.72
rbx-3.73
rbx-3.74
rbx-3.75
rbx-3.76
rbx-3.77
rbx-3.78
rbx-3.79
rbx-3.80
rbx-3.81
rbx-3.82
rbx-3.83
rbx-3.84
rbx-3.85
rbx-3.86
rbx-3.87
rbx-3.88
rbx-3.89
rbx-3.90
rbx-3.91
rbx-3.92
rbx-3.93
rbx-3.94
rbx-3.95
rbx-3.96
rbx-3.97
rbx-3.98
rbx-3.99
rbx-3.100
rbx-3.101
rbx-3.102
rbx-3.103
rbx-3.104
rbx-3.105
rbx-3.106
rbx-3.107
ree-1.8.7-2011.03
ree-1.8.7-2011.12
ree-1.8.7-2012.01
ree-1.8.7-2012.02
topaz-dev
truffleruby-1.0.0-rc10
truffleruby-1.0.0-rc11
truffleruby-1.0.0-rc12
truffleruby-1.0.0-rc13
truffleruby-1.0.0-rc14
truffleruby-1.0.0-rc15
truffleruby-1.0.0-rc16
truffleruby-1.0.0-rc2
truffleruby-1.0.0-rc3
truffleruby-1.0.0-rc5
truffleruby-1.0.0-rc6
truffleruby-1.0.0-rc7
truffleruby-1.0.0-rc8
truffleruby-1.0.0-rc9
truffleruby-19.0.0
truffleruby-19.1.0
truffleruby-19.2.0
truffleruby-19.2.0.1
truffleruby-19.3.0
truffleruby-19.3.0.2
truffleruby-19.3.1
</details>

## Rubyのインストール
rbenvを利用して、`rbenv install -l`一覧からインストールするRubyのバージョンを選択してインストールする。

```
$ rbenv install 2.6.3
```

<details><summary>rbenv install 2.6.3 実行 ログ</summary>
Downloading ruby-2.6.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.bz2
Installing ruby-2.6.3...
Installed ruby-2.6.3 to \$HOME/.rbenv/versions/2.6.3
</details>

ちなみにre:viewのgithubのリポジトリから、v4.0.0タグのTravisCIの使用するRubyのバージョンをみてみると、Rubyのバージョン`2.6.3`でCIを回しているようですので、`2.6.3`をインストールしています。

``` review/.travis.yml
29: rvm:
30:   - 2.4.6
31:   - 2.5.5
32:   - 2.6.3
```
参照 : https://github.com/kmuto/review/blob/v4.0.0/.travis.yml#L29

インストールしたRubyをshimsへ通知し、使用可能な状態にする

```
$ rbenv rehash
```

インストールされたRubyのバージョンを確認

```
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
```

-----

# TechBoosterのRe:VIEWテンプレートを使用する上で必要なToolのインストール
TechBoosterのRe:VIEWテンプレートでは`gemfile`を使用して、bundlerによるgem経由でRuby言語用のパッケージ管理システムにより執筆に必要なRuby Packageが使用できるようになっています(Re:Viewも含まれています)。
ここでは、必要となるToolを事前にインストールしていきます。

## Rubyを使用する上で必要なPackageシステムの導入
gem　/　bundlerとは、次のようなツールとなっています。
> gem(RubyGemsは)、Ruby言語用のパッケージ管理システムであり、Rubyのプログラムと（"gem" と呼ばれる）ライブラリの配布用標準フォーマットを提供している。gemを容易に管理でき、gemを配布するサーバの機能も持つ。Rubyバージョン1.9以降では標準ライブラリの一部となっている。
>　
gem コマンドは gem パッケージのビルド, アップロード, ダウンロード, インストールに使われる。
>　
> <b>引用：</b> [RubyGems(https://ja.wikipedia.org/wiki/RubyGems)](https://ja.wikipedia.org/wiki/RubyGems)

#
> Bundlerは、必要なgemとバージョンを正確に追跡そしてインストールできる仕組みで、Rubyプロジェクト毎に一貫した環境を提供してくれます。
>　
> BundlerはRubyパッケージ間の依存関係による地獄からの脱出であり、必要なパッケージをgem経由によりdevelopment、staging、そして, productionに存在することを保証します。プロジェクトでの作業を開始するのは簡単でbundle installでおこなえます。
>　
> <b>引用：</b> [Bundler(https://bundler.io/)](https://bundler.io/)

一言で説明すると、

- gem  
  Ruby言語用のパッケージ管理システム (aptみたいなもの)。
- bundler  
  gemの依存関係とバージョンを管理するために、gemfile"と"gemfile.lock"に従って、gemを管理をするライブラリ。

ですね。
前述のRubyのインストールにて、既にRubyを導入した際にgemも導入されています。  
その為、ここではbundlerのみを追加していきます。

### bundlerをインストールする
bundlerもRuby言語用のパッケージ管理システムのgemから導入できます。  
rbenvで適用されているRubyのgemを指定して実行するために、`rbenv exec gem`と実行させます。

```
$ rbenv exec gem install bundler
```

<details><summary>bundler install 実行 ログ</summary>
Fetching bundler-2.1.4.gem
Successfully installed bundler-2.1.4
Parsing documentation for bundler-2.1.4
Installing ri documentation for bundler-2.1.4
Done installing documentation for bundler after 5 seconds
1 gem installed
</details>

## Node.jsを使用する上で必要なPackageシステムの導入
TechBoosterのRe:VIEWテンプレートは、`npm`によりreviewファイルからPDFやepubの作成が可能です。
ただし、`npm`使うだけでも`Node.js`が必要になり、さまざまなWeb開発を行うPCを使用する場合、開発環境ごとに`Node.js`のversionが異なったりする為、ここでは`Node.js`についてもversion管理するためのtoolである`nodebrew`を導入することにより、`Node.js`の追加をおこなっていきます。

Node.js / npmとは、次のようなツールとなっています。
> Node.js は、イベント化された入出力を扱うUnix系プラットフォーム上のサーバーサイドJavaScript環境である。Webサーバなどのスケーラブルなネットワークプログラムの記述を意図している。
>　
> <b>引用：</b> [Node.js(https://ja.wikipedia.org/wiki/Node.js)](https://ja.wikipedia.org/wiki/Node.js)

#
> npmとはパッケージ管理システムの1種。Node Package Managerの意。
> 　
> ライセンスはArtistic License 2.0。Node.jsのパッケージ管理システムであり、V8 JavaScriptエンジンで動作する[4]。npm自身もJavaScriptで記述されている。
> 　
> Node.jsは、サーバ上で動作するJavaScriptであるが、Node.jsを使ったツールが開発されるようになると、これらを管理するバージョン管理システムの必要性が生まれた。
> 　
> npmは、Node.jsのツールやパッケージ（モジュール）をインストールしたり管理したりするだけでなく、パッケージを扱うためにインターフェイスを備えている。リポジトリ機能も備えており、必要とするパッケージ（モジュール）の検索、ダウンロード、インストール、アップデートを行えたり、開発したパッケージ（モジュール）を他者に公開できたりする。
> 　
> <b>引用：</b> [npm　\(パッケージ管理ツール\)(https://ja.wikipedia.org/wiki/npm　\(パッケージ管理ツール\)](https://ja.wikipedia.org/wiki/Npm_(%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E7%AE%A1%E7%90%86%E3%83%84%E3%83%BC%E3%83%AB))

一言で説明すると、

- Node.js  
  (ネットワークアプリケーションなどで使用される)非同期型のイベント駆動のJavaScript環境。
- npm  
  Node.jsを使用したパッケージを管理するツール。

ですね。
'Node.js'のインストールにて、`npm`も導入されます。  
導入するパッケージは、各プロジェクトのディレクトリにあり`package.json`にて管理することができ、TechBoosterのRe:VIEWテンプレートでは既に配置済みとなっています。  
その為、ここでは`Node.js`のversion管理するtoolである`nodebrew`を追加。`Node.js`を追加していきます。


### nodebrewの導入

nodebrewは、 https://github.com/hokaccha/nodebrew で公開されており、インストールの仕方も記載されています。
ここでは、リポジトリをダウンロード(取得)してInstallではなくcurlによるインストールを行います。

```
$ curl -L git.io/nodebrew | perl - setup
```

<details><summary>nodebrew curlによる install 実行 ログ</summary>
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
100 24634  100 24634    0     0   9626      0  0:00:02  0:00:02 --:--:-- 60377
Fetching nodebrew...
Installed nodebrew in \$HOME/.nodebrew  
　
\========================================  
Export a path to nodebrew:  
　
export PATH=$HOME/.nodebrew/current/bin:$PATH  
\========================================
</details>

### .nodebrewへのPATHを通す
`nodebrew`管理ディレクトリは、デフォルトではホームディレクトリ直下の`.nodebrew`に配置されます。
`nodebrew`の導入時に出てきているlogにあるように、ホームディレクトリ直下の`.nodebrew`のパスを通すため、`.bash_profile`へパスが通る設定をする。

```
$ echo 'export PATH="$HOME/.nodebrew/current/bin:$PATH"' >> ~/.bash_profile
```
また、実行しているコンソールへ設定したPATHが通るように、先程設定した`.bash_profile`のシェルの設定を反映される。

```
$ source ~/.bash_profile
```
### nodebrewが正しくセットアップされているか確認
次のコマンドを実行する。

```
$ nodebrew help
```

次のようなヘルプ表示されれば正常です。
<details><summary>nodebrew help 実行 ログ</summary>
nodebrew 1.0.1
　
Usage:
　　 nodebrew help                         Show this message
　　 nodebrew install <version>            Download and install <version> (from binary)
　　 nodebrew compile <version>            Download and install <version> (from source)
　　 nodebrew install-binary <version>     Alias of \`install\` (For backward compatibility)
　　 nodebrew uninstall <version>          Uninstall <version>
　　 nodebrew use <version>                Use <version>
　　 nodebrew list                         List installed versions
　　 nodebrew ls                           Alias for \`list\`
　　 nodebrew ls-remote                    List remote versions
　　 nodebrew ls-all                       List remote and installed versions
　　 nodebrew alias <key> <value>          Set alias
　　 nodebrew unalias <key>                Remove alias
　　 nodebrew clean <version> | all        Remove source file
　　 nodebrew selfupdate                   Update nodebrew
　　 nodebrew migrate-package <version>    Install global NPM packages contained in <version> to current version
　　 nodebrew exec <version> -- <command>  Execute <command> using specified <version>
　
Example:
　　 # install
　　 nodebrew install v8.9.4
　
　　 # use a specific version number
　　 nodebrew use v8.9.4
</details>

#### ===== nodebrew機能メモ =====
##### nodebrewのバージョン確認
```
$ rbenv help
nodebrew 1.0.1
・・・
```

##### nodebrewで管理対象(導入済み)のNode.jsのバージョンと、現在適用されているNode.jsバージョン確認
```
$ nodebrew ls
v12.14.1             # nodebrew install-binaryでv12.14.1をインストールした場合

current: v12.14.1    # nodebrew useでv12.14.1を指定した場合。設定していない場合は、`current: none`の表示
```

##### nodebrewで使用できるNode.jsバージョンリストの確認
```
$ nodebrew ls-remote
v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6 
　
・・・
```

<details><summary>nodebrew ls-remote 実行 ログ(2020.2.1現在の使用できるNode.jsバージョン一覧)</summary>
v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6    
　
v0.1.0    v0.1.1    v0.1.2    v0.1.3    v0.1.4    v0.1.5    v0.1.6    v0.1.7
v0.1.8    v0.1.9    v0.1.10   v0.1.11   v0.1.12   v0.1.13   v0.1.14   v0.1.15
v0.1.16   v0.1.17   v0.1.18   v0.1.19   v0.1.20   v0.1.21   v0.1.22   v0.1.23
v0.1.24   v0.1.25   v0.1.26   v0.1.27   v0.1.28   v0.1.29   v0.1.30   v0.1.31
v0.1.32   v0.1.33   v0.1.90   v0.1.91   v0.1.92   v0.1.93   v0.1.94   v0.1.95
v0.1.96   v0.1.97   v0.1.98   v0.1.99   v0.1.100  v0.1.101  v0.1.102  v0.1.103
v0.1.104  
　
v0.2.0    v0.2.1    v0.2.2    v0.2.3    v0.2.4    v0.2.5    v0.2.6    
　
v0.3.0    v0.3.1    v0.3.2    v0.3.3    v0.3.4    v0.3.5    v0.3.6    v0.3.7
v0.3.8    
　
v0.4.0    v0.4.1    v0.4.2    v0.4.3    v0.4.4    v0.4.5    v0.4.6    v0.4.7
v0.4.8    v0.4.9    v0.4.10   v0.4.11   v0.4.12   
　
v0.5.0    v0.5.1    v0.5.2    v0.5.3    v0.5.4    v0.5.5    v0.5.6    v0.5.7
v0.5.8    v0.5.9    v0.5.10   
　
v0.6.0    v0.6.1    v0.6.2    v0.6.3    v0.6.4    v0.6.5    v0.6.6    v0.6.7
v0.6.8    v0.6.9    v0.6.10   v0.6.11   v0.6.12   v0.6.13   v0.6.14   v0.6.15
v0.6.16   v0.6.17   v0.6.18   v0.6.19   v0.6.20   v0.6.21   
　
v0.7.0    v0.7.1    v0.7.2    v0.7.3    v0.7.4    v0.7.5    v0.7.6    v0.7.7
v0.7.8    v0.7.9    v0.7.10   v0.7.11   v0.7.12   
　
v0.8.0    v0.8.1    v0.8.2    v0.8.3    v0.8.4    v0.8.5    v0.8.6    v0.8.7
v0.8.8    v0.8.9    v0.8.10   v0.8.11   v0.8.12   v0.8.13   v0.8.14   v0.8.15
v0.8.16   v0.8.17   v0.8.18   v0.8.19   v0.8.20   v0.8.21   v0.8.22   v0.8.23
v0.8.24   v0.8.25   v0.8.26   v0.8.27   v0.8.28   
　
v0.9.0    v0.9.1    v0.9.2    v0.9.3    v0.9.4    v0.9.5    v0.9.6    v0.9.7
v0.9.8    v0.9.9    v0.9.10   v0.9.11   v0.9.12   
　
v0.10.0   v0.10.1   v0.10.2   v0.10.3   v0.10.4   v0.10.5   v0.10.6   v0.10.7
v0.10.8   v0.10.9   v0.10.10  v0.10.11  v0.10.12  v0.10.13  v0.10.14  v0.10.15
v0.10.16  v0.10.17  v0.10.18  v0.10.19  v0.10.20  v0.10.21  v0.10.22  v0.10.23
v0.10.24  v0.10.25  v0.10.26  v0.10.27  v0.10.28  v0.10.29  v0.10.30  v0.10.31
v0.10.32  v0.10.33  v0.10.34  v0.10.35  v0.10.36  v0.10.37  v0.10.38  v0.10.39
v0.10.40  v0.10.41  v0.10.42  v0.10.43  v0.10.44  v0.10.45  v0.10.46  v0.10.47
v0.10.48  
　
v0.11.0   v0.11.1   v0.11.2   v0.11.3   v0.11.4   v0.11.5   v0.11.6   v0.11.7
v0.11.8   v0.11.9   v0.11.10  v0.11.11  v0.11.12  v0.11.13  v0.11.14  v0.11.15
v0.11.16  
　
v0.12.0   v0.12.1   v0.12.2   v0.12.3   v0.12.4   v0.12.5   v0.12.6   v0.12.7
v0.12.8   v0.12.9   v0.12.10  v0.12.11  v0.12.12  v0.12.13  v0.12.14  v0.12.15
v0.12.16  v0.12.17  v0.12.18  
　
v4.0.0    v4.1.0    v4.1.1    v4.1.2    v4.2.0    v4.2.1    v4.2.2    v4.2.3
v4.2.4    v4.2.5    v4.2.6    v4.3.0    v4.3.1    v4.3.2    v4.4.0    v4.4.1
v4.4.2    v4.4.3    v4.4.4    v4.4.5    v4.4.6    v4.4.7    v4.5.0    v4.6.0
v4.6.1    v4.6.2    v4.7.0    v4.7.1    v4.7.2    v4.7.3    v4.8.0    v4.8.1
v4.8.2    v4.8.3    v4.8.4    v4.8.5    v4.8.6    v4.8.7    v4.9.0    v4.9.1
　
　
v5.0.0    v5.1.0    v5.1.1    v5.2.0    v5.3.0    v5.4.0    v5.4.1    v5.5.0
v5.6.0    v5.7.0    v5.7.1    v5.8.0    v5.9.0    v5.9.1    v5.10.0   v5.10.1
v5.11.0   v5.11.1   v5.12.0   
　
v6.0.0    v6.1.0    v6.2.0    v6.2.1    v6.2.2    v6.3.0    v6.3.1    v6.4.0
v6.5.0    v6.6.0    v6.7.0    v6.8.0    v6.8.1    v6.9.0    v6.9.1    v6.9.2
v6.9.3    v6.9.4    v6.9.5    v6.10.0   v6.10.1   v6.10.2   v6.10.3   v6.11.0
v6.11.1   v6.11.2   v6.11.3   v6.11.4   v6.11.5   v6.12.0   v6.12.1   v6.12.2
v6.12.3   v6.13.0   v6.13.1   v6.14.0   v6.14.1   v6.14.2   v6.14.3   v6.14.4
v6.15.0   v6.15.1   v6.16.0   v6.17.0   v6.17.1   
　
v7.0.0    v7.1.0    v7.2.0    v7.2.1    v7.3.0    v7.4.0    v7.5.0    v7.6.0
v7.7.0    v7.7.1    v7.7.2    v7.7.3    v7.7.4    v7.8.0    v7.9.0    v7.10.0
v7.10.1   
　
v8.0.0    v8.1.0    v8.1.1    v8.1.2    v8.1.3    v8.1.4    v8.2.0    v8.2.1
v8.3.0    v8.4.0    v8.5.0    v8.6.0    v8.7.0    v8.8.0    v8.8.1    v8.9.0
v8.9.1    v8.9.2    v8.9.3    v8.9.4    v8.10.0   v8.11.0   v8.11.1   v8.11.2
v8.11.3   v8.11.4   v8.12.0   v8.13.0   v8.14.0   v8.14.1   v8.15.0   v8.15.1
v8.16.0   v8.16.1   v8.16.2   v8.17.0   
　
v9.0.0    v9.1.0    v9.2.0    v9.2.1    v9.3.0    v9.4.0    v9.5.0    v9.6.0
v9.6.1    v9.7.0    v9.7.1    v9.8.0    v9.9.0    v9.10.0   v9.10.1   v9.11.0
v9.11.1   v9.11.2   
　
v10.0.0   v10.1.0   v10.2.0   v10.2.1   v10.3.0   v10.4.0   v10.4.1   v10.5.0
v10.6.0   v10.7.0   v10.8.0   v10.9.0   v10.10.0  v10.11.0  v10.12.0  v10.13.0
v10.14.0  v10.14.1  v10.14.2  v10.15.0  v10.15.1  v10.15.2  v10.15.3  v10.16.0
v10.16.1  v10.16.2  v10.16.3  v10.17.0  v10.18.0  v10.18.1  
　
v11.0.0   v11.1.0   v11.2.0   v11.3.0   v11.4.0   v11.5.0   v11.6.0   v11.7.0
v11.8.0   v11.9.0   v11.10.0  v11.10.1  v11.11.0  v11.12.0  v11.13.0  v11.14.0
v11.15.0  
　
v12.0.0   v12.1.0   v12.2.0   v12.3.0   v12.3.1   v12.4.0   v12.5.0   v12.6.0
v12.7.0   v12.8.0   v12.8.1   v12.9.0   v12.9.1   v12.10.0  v12.11.0  v12.11.1
v12.12.0  v12.13.0  v12.13.1  v12.14.0  v12.14.1  
　
v13.0.0   v13.0.1   v13.1.0   v13.2.0   v13.3.0   v13.4.0   v13.5.0   v13.6.0
v13.7.0   
　
io@v1.0.0 io@v1.0.1 io@v1.0.2 io@v1.0.3 io@v1.0.4 io@v1.1.0 io@v1.2.0 io@v1.3.0
io@v1.4.1 io@v1.4.2 io@v1.4.3 io@v1.5.0 io@v1.5.1 io@v1.6.0 io@v1.6.1 io@v1.6.2
io@v1.6.3 io@v1.6.4 io@v1.7.1 io@v1.8.1 io@v1.8.2 io@v1.8.3 io@v1.8.4 
　
io@v2.0.0 io@v2.0.1 io@v2.0.2 io@v2.1.0 io@v2.2.0 io@v2.2.1 io@v2.3.0 io@v2.3.1
io@v2.3.2 io@v2.3.3 io@v2.3.4 io@v2.4.0 io@v2.5.0 
　
io@v3.0.0 io@v3.1.0 io@v3.2.0 io@v3.3.0 io@v3.3.1 
</details>

### Node.jsのインストール
nodebrewを利用して、`ls-remote`一覧からインストールするRubyのバージョンを選択してインストールする。

```
$ nodebrew install-binary v12.14.1
```

<details><summary>nodebrew install-binary v12.14.1 実行 ログ</summary>
Fetching: https://nodejs.org/dist/v12.14.1/node-v12.14.1-linux-x64.tar.gz
\########################################################################################################################################### 100.0%
Installed successfully
</details>

`Node.js`は、メジャーバージョン(AA.BB.CCのAA番号)が、

- 奇数番号バージョン  
  最新の機能を取り込んでいるが、安定性の保証がないもの(CURRENT版)
- 偶数番号バージョン  
  長期の保守運用に使用することを目的とした安定版(LTS版)

となっています。安定してかつ長期保守運用されている偶数番号のバージョンを使用するのがおすすめです。
さらに、TechBoosterのRe:VIEWテンプレートで使用する`Node.js`は4.x系以上が必須となっています。(2020.2.1現在)
今回は、`Node.js`( https://github.com/nodejs/Release )のページを確認した所、StableでLTS(Long Time Support)版は、12.xとなっていた為、`v12.14.1`をインストールしています。
nodebrewでは、以外に`Node.js`の最新のLTS版を入れたい場合には、

```
$ nodebrew install stable
```
でも導入可能です。(2020.2.1現在、`v12.14.1`がインストールされるので、`nodebrew install-binary v12.14.1`と同じものがセットアップされます。)

導入したnoe.jsのバージョンを指定してcurrentバージョンとして、使用可能な状態にする。

```
$ nodebrew use v12.14.1
```

使用する`Node.js`バージョン確認と、`npm`の動作確認(バージョン表示)


```
$ nodebrew ls
v12.14.1

current: v12.14.1
```
```
$ npm -v
6.13.4
```

-----


# TechBoosterのRe:VIEWテンプレートを使用して、Re:VIEWフォーマットからPDF/epubを作成する
## TechBoosterのRe:VIEWテンプレートの導入
TechBoosterのRe:VIEWテンプレートは、 https://github.com/TechBooster/ReVIEW-Template で公開されています。
gitを使用してcloneしてきます。

```
$ git clone https://github.com/TechBooster/ReVIEW-Template.git
```

Re:VIEW v4.0 に対応したテンプレートを使用していきます。
`techbooster-doujin-base.sty`の適用がされている`a563244`のcommitされたものをbranchして使用します。
![github.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7975/1487f455-272d-7b39-bc82-d3b9a1ec2e8c.png)


```
$ cd ./ReVIEW-Template
$ git checkout -b Branch_a563244 a563244
Switched to a new branch 'Branch_a563244'
```
現在のBranchが作成した、`Branch_a563244`になっているか確認してみます。

```
$ git branch 
* Branch_a563244
  master
```

### TechBoosterのRe:VIEWテンプレートで必要なNode.jsを使用したパッケージの導入
npmを使用してReVIEW-Template/package.json`を使用して必要な`Node.js`を使用したパッケージの導入をおこないます。

```
$ npm install
```

<details><summary>npm install 実行 ログ</summary>
\> review-template @0.0.2 postinstall /opt/mysrc/ReVIEW-Template
\> bundle install
　
Fetching gem metadata from https://rubygems.org/...
Resolving dependencies...
Using bundler 2.1.4
Using image_size 2.0.2
Using rouge 3.15.0
<font color="green">Fetching rubyzip 2.2.0</font>
<font color="green">Installing rubyzip 2.2.0</font>
Using review 4.0.0
<font color="green">Bundle complete! 1 Gemfile dependency, 5 gems now installed.</font>
<font color="green">Use \`bundle info [gemname]\` to see where a bundled gem is installed.</font>
added 263 packages from 174 contributors and audited 1217 packages in 6.224s
found <font color="green">0</font> vulnerabilities
</details>

以上でTechBoosterのRe:VIEWテンプレートで、re:view v4.0も含めてInstall完了です。
執筆は、`ReVIEW-Template/articles`のディレクトリにある次のファイルを修正して、執筆開始です。

- config.yml (Re:Viewで生成するドキュメントの設定ファイル)
- catalog.yml (目次(章立て)の設定ファイル)
- re拡張子のre:viewファイル(Re:VIEW 原稿本文ファイル)

詳しい使い方等は、[Re:VIEW Wiki](https://github.com/kmuto/review/wiki)に記載されている、
"[config.yml](https://github.com/kmuto/review/wiki/config.yml)"、"[Re:VIEW カタログファイル(catalog.yml) ガイド](https://github.com/kmuto/review/blob/master/doc/catalog.ja.md)"、"[Re:VIEW フォーマットガイド(Re:VIEWファイルの記述方法)](https://github.com/kmuto/review/blob/master/doc/format.ja.md)"
を参考にしてください。

## PDFの作成
### Node.js経由でのPDF出力
次のコマンドを実行することにより、`ReVIEW-Template/articles`のディレクトリにPDFが出力されます。

```
$ npm run pdf
```

<details><summary>npm run pdf 実行 ログ</summary>
\> review-template @0.0.2 pdf /opt/mysrc/ReVIEW-Template
\> grunt pdf
　
Running "clean:review" (clean) task
\>> 3 paths cleaned.
　
Running "shell:preprocess" (shell) task
　
Running "shell:compile2pdf" (shell) task
INFO review-pdfmaker: compiling preface.tex
INFO review-pdfmaker: compiling article.tex
INFO review-pdfmaker: compiling contributors.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error \_\_REVIEW_BOOK\_\_.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error \_\_REVIEW_BOOK\_\_.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error \_\_REVIEW_BOOK\_\_.tex
INFO review-pdfmaker: dvipdfmx -d 5 -z 9 \_\_REVIEW_BOOK\_\_.dvi
　
<font color="green">Done.</font>
</details>

### Re:VIEWコマンドでのPDF出力
Re:VIEWコマンドでのPDF出力するには、`config.yml`のある、`ReVIEW-Template/articles`ディレクトリに入って、
次のコマンドを実行することにより、`ReVIEW-Template/articles`のディレクトリにPDFが出力されます。

```
$ cd ./articles
$ rake pdf
```

<details><summary>rake pdf 実行 ログ</summary>
review-pdfmaker config.yml
INFO review-pdfmaker: compiling preface.tex
INFO review-pdfmaker: compiling article.tex
INFO review-pdfmaker: compiling contributors.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error \_\_REVIEW_BOOK\_\_.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error \_\_REVIEW_BOOK\_\_.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error \_\_REVIEW_BOOK\_\_.tex
INFO review-pdfmaker: dvipdfmx -d 5 -z 9 \_\_REVIEW_BOOK\_\_.dvi
</details>

## epubの作成
### Node.js経由でのepub出力
次のコマンドを実行することにより、`ReVIEW-Template/articles`のディレクトリにepubファイルが出力されます。

```
$ npm run epub
```

<details><summary>npm run epub 実行 ログ</summary>
\> review-template @0.0.2 epub /opt/mysrc/ReVIEW-Template
\> grunt epub
　
Running "clean:review" (clean) task
<font color="green">\>\></font> 1 path cleaned.
　
Running "shell:preprocess" (shell) task
　
Running "shell:compile2epub" (shell) task
 　
<font color="green">Done.</font>
</details>

### Re:VIEWコマンドでのepub出力
Re:VIEWコマンドでのepub出力するには、`config.yml`のある、`ReVIEW-Template/articles`ディレクトリに入って、
次のコマンドを実行することにより、`ReVIEW-Template/articles`のディレクトリにepubが出力されます。

```
$ cd ./articles
$ rake epub
review-epubmaker config.yml
```
-----

# まとめ
初めてRe:VIEWの執筆環境を整える人向けに、環境構築についてまとめてみました。
Re:VIEWの各種設定や執筆環境については、いろいろWebで探してもらうと情報が沢山あります。
そちらを参考に、自分にあった環境を整えていってください。

<!--
------

# 参考リンク
[Ubuntu 18.04 LTS に LaTeX をインストール](https://qiita.com/BitPositive/items/6b13e2038d628c33be8e)

[rbenv @ github](https://github.com/rbenv/rbenv)
[rbenvの使い方と仕組みについて](https://qiita.com/Kodak_tmo/items/73147ed4f0eec54d6e94)
[rbenv や Bundler を用いた Ruby環境構築](https://qiita.com/HayneRyo/items/d493a2b3cec2322f167c)
[rbenvのよく使うコマンドまとめ](https://www.task-notes.com/entry/20141204/1417662000)
[rbenv + ruby-build はどうやって動いているのか](https://takatoshiono.hatenablog.com/entry/2015/01/09/012040)
[rbenv rehashが気になったのでgithubで調べてみた #24](https://hyuraku.hateblo.jp/entry/2018/10/26/234341)

[nodebrew @ github](https://github.com/hokaccha/nodebrew)
[node.jsのversionを管理するためにnodebrewを利用する](https://qiita.com/sinmetal/items/154e81823f386279b33c)
[npmとpackage.json](https://qiita.com/Sekky0905/items/452619651cdd950c2271)

[Node.js @ github](https://github.com/nodejs/node)
[Node.js Release Working Group @ github](https://github.com/nodejs/Release)
[node.jsのバージョンごとの違い](https://qiita.com/kawak/items/64e4d6cb25f0494f604d)

[Re:VIEW @ github](https://github.com/kmuto/review)
[TechBoosterで利用しているRe:VIEWのテンプレート @ github](https://github.com/TechBooster/ReVIEW-Template)
[Re:VIEWクイックスタートガイド @ Re:VIEW wiki](https://github.com/kmuto/review/blob/master/doc/quickstart.ja.md)
[Re:VIEW フォーマットガイド @ Re:VIEW wiki](https://github.com/kmuto/review/blob/master/doc/format.ja.md)
[Re:VIEW ナレッジベース](https://review-knowledge-ja.readthedocs.io/ja/latest/index.html)

-->